CN117931510A - 一种数据备份方法、装置及计算设备集群 - Google Patents
一种数据备份方法、装置及计算设备集群 Download PDFInfo
- Publication number
- CN117931510A CN117931510A CN202211673590.5A CN202211673590A CN117931510A CN 117931510 A CN117931510 A CN 117931510A CN 202211673590 A CN202211673590 A CN 202211673590A CN 117931510 A CN117931510 A CN 117931510A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- data node
- backup
- copy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013508 migration Methods 0.000 claims abstract description 131
- 230000005012 migration Effects 0.000 claims abstract description 131
- 230000015654 memory Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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)
Abstract
一种数据备份方法、装置及计算设备集群,本申请中,备份装置对第一数据节点与第二数据节点进行数据备份,生成并保存第一数据节点的数据副本以及第二数据节点的数据副本。当第一数据节点与第二数据节点之间发生数据迁移,备份装置确定被迁移数据,被迁移数据为从第一数据节点迁移到第二数据节点的数据。备份装置根据被迁移数据对第一数据节点的数据副本和第二数据节点的数据副本进行更新。在第一数据节点与第二数据节点之间发生数据迁移的情况下,备份装置能够统一的对第一数据节点的数据副本和第二数据节点的数据副本进行更新,避免了重复性的对一些数据进行备份,减少数据备份的工作量。
Description
相关申请的交叉引用
本申请要求在2022年10月24日提交中华人民共和国知识产权局、申请号为202211305203.2、发明名称为“一种数据备份方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据备份方法、装置及计算设备集群。
背景技术
数据管理从单个数据节点(如单个计算设备或单个数据中心)的集中式管理逐渐过渡为多个数据节点的联邦式管理。相应的,数据从集中存储在单个数据节点的方式转换为分布式存储在多个数据节点的方式。在多个数据节点的联邦式管理模式下,数据分布在多个数据节点中,数据节点之间允许进行数据迁移,也即多个数据节点之间存在数据流动。
数据备份是数据保护的一种主要手段。对主数据进行数据备份,产生备份数据,当主数据丢失或者损坏时,可以用备份数据恢复主数据。但在多个数据节点的联邦式管理模式下,数据迁移所涉及的两个数据节点的备份过程相对独立,其中任一数据节点需要自行触发一次备份,以保证数据节点的数据及时备份。通常多个数据节点的联邦式管理模式下,存在大量的数据流动,这将造成多个数据节点需要各自频繁地触发备份,这种备份的方式增加了备份的工作量。
发明内容
本申请提供一种数据备份方法、装置及计算设备集群,用以保证降低由数据迁移导致的数据备份的工作量。
第一方面,本申请提供了一种数据备份方法,该方法可以由备份装置(备份装置对应于实施例中提及的备份子***)执行。在该方法中,备份装置能够对第一数据节点与第二数据节点进行数据备份,生成并保存第一数据节点的数据副本以及第二数据节点的数据副本。在保存了第一数据节点的数据副本以及第二数据节点的数据副本之后,当第一数据节点与第二数据节点之间发生数据迁移,备份装置能够确定被迁移数据,被迁移数据为从第一数据节点迁移到第二数据节点的数据。该备份装置根据被迁移数据对第一数据节点的数据副本和第二数据节点的数据副本进行更新。
通过上述方法,在第一数据节点与第二数据节点之间发生数据迁移的情况下,备份装置在确定了被迁移数据之后,能够一次性的对第一数据节点的数据副本和第二数据节点的数据副本进行更新。第一数据节点的数据备份以及第二数据节点的数据备份并非是独立进行的。也就是说,第一数据节点以及第二数据节点不再需要针对被迁移数据分别进行一次备份。避免了重复性的对一些数据进行备份,减少数据备份的工作量。另外,备份装置能够在发生数据迁移的情况下,完成对第一数据节点以及第二数据节点的数据备份,保证了数据迁移与数据备份的同步性,有效地保证了主数据以及备份数据的一致性。
在一种可能的实现方式中,备份装置在根据被迁移数据对第一数据节点的数据副本和第二数据节点的数据副本进行更新时,从第一数据节点的数据副本删除被迁移数据,将被迁移数据更新到第二数据节点的数据副本。
通过上述方法,备份装置只需利用被迁移数据即可一同完成对第一数据节点以及第二数据节点的数据备份,第一数据节点的数据备份以及第二数据节点的数据备份不再是相对独立的过程,保证了在数据迁移的情况下同步完成数据备份。
在一种可能的实现方式中,备份装置能够感知第一数据节点与第二数据节点之间发生数据迁移。本申请并不限定备份装置感知第一数据节点与第二数据节点之间发生数据迁移的方式。例如,备份装置能够从第一数据节点或第二数据节点获取数据迁移信息,数据迁移信息指示发生数据迁移的第一数据节点以及第二数据节点。又例如,备份装置能够从管理第一数据节点的数据以及第二数据节点的数据的模块(如下文中提及的全局数据管理模块)获取数据迁移信息,该数据迁移信息指示发生数据迁移的第一数据节点以及第二数据节点。
通过上述方法,备份装置能够感知第一数据节点与第二数据节点之间发生数据迁移,保证备份装置能够在第一数据节点与第二数据节点之间发生数据迁移的情况下,及时更新第一数据节点的数据副本、以及第二数据节点的数据副本,保证数据迁移以及数据备份的同步性。
在一种可能的实现方式中,数据迁移信息可以指示被迁移数据,备份装置在可以根据数据迁移信息确定被迁移数据。
通过上述方法,数据迁移信息指示了被迁移数据,使得备份装置能够快速的确定被迁移数据。
在一种可能的实现方式中,为了确定被迁移数据时,备份装置可以获取第一数据节点的元数据快照以及第二数据节点的元数据快照,其中,第一数据节点的元数据快照指示第一数据节点的元数据,第一数据节点的元数据用于描述第一数据节点的数据,第二数据节点的元数据快照用于指示第二数据节点的元数据,第二数据节点的元数据用于描述第二数据节点的数据。备份装置对第一数据节点的元数据快照以及第二数据节点的元数据快照进行分析,确定被迁移数据。
通过上述方法,备份装置通过第一数据节点的元数据快照以及第二数据节点的元数据快照能够准确的定位出被迁移数据。
在一种可能的实现方式中,被迁移数据可能涉及两类数据。一类数据为已更新到第一数据节点、且未备份到第一数据节点的数据副本中的数据,该类数据称为更新数据。另一类数据为已更新到第一数据节点、且已备份到第一数据节点的数据副本中的数据,该类数据称为固定数据。被迁移数据可以均为更新数据,也可以均为固定数据,还可以同时包括更新数据以及固定数据。
备份装置在利用被迁移数据更新第二数据节点的数据副本时,对于固定数据,备份装置可以将第一数据节点的数据副本中固定数据迁移到第二数据节点的数据副本中。对于更新数据,备份装置可以从第二数据节点中获取的更新数据,将更新数据增加到第二数据节点的数据副本中。
通过上述方法,备份装置在更新第二数据节点的数据副本时,只需从第二数据节点获取更新数据,而不需要获取全部的被迁移数据,能够有效减少备份装置与第二数据节点之间交互的数据量。而且对于固定数据,备份装置仅需要将固定数据从第一数据节点的数据副本迁移到第二数据节点的数据副本,也即为固定数据的备份仅涉及两个数据节点的数据副本之间的数据迁移,备份装置并不需要第二数据节点获取该固定数据,同样可以减少备份装置与第二数据节点之间交互的数据量。
在一种可能的实现方式中,第一数据节点以及第二数据节点属于全局文件***。在全局文件***中,第一数据节点的数据以及第二数据节点的数据以文件组织。基于全局文件***部署的上层应用程序不感知全局文件***内部数据的流动。
通过上述方法,全局文件***中的数据流动是上层应用程序不感知的,在这种情况下,备份装置仍能够感知到该全局文件***中的数据流动,保证备份装置能够及时更新所保存的数据节点的数据副本,同步完成数据备份。
第二方面,本申请实施例还提供了一种备份装置,该备份装置具有实现上述第一方面的方法实例中备份装置的行为功能,有益效果可以参见第一方面的描述此处不再赘述。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,备份装置的结构中包括备份执行模块,可选的,还包括备份业务管理模块。这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第一方面的方法实例中备份装置的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备的结构中包括处理器和存储器,处理器被配置为支持备份装置执行上述第一方面方法中相应的功能。存储器与处理器耦合,其保存备份装置必要的计算机程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第四方面,本申请实施例还提供了一种计算设备集群,该计算设备集群具有实现上述第一方面的方法实例中备份装置的行为的功能,有益效果可以参见第一方面的描述此处不再赘述。计算设备集群包括至少一个计算设备,任一计算设备的结构中包括处理器和存储器,任一计算设备中的处理器被配置为支持备份装置执行上述第一方面以及第一方面的各个可能的实施方式中的部分或全部功能。存储器与处理器耦合,其保存备份装置必要的计算机程序指令和数据。通信装置的结构中还包括通信接口,用于与其他设备进行通信。
第五方面,本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
第七方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中的方法。
附图说明
图1为本申请提供的一种数据处理***的架构示意图;
图2为本申请提供的一种备份子***的架构示意图;
图3为本申请提供的一种数据备份方法示意图;
图4为本申请提供的一种更新数据副本的示意图;
图5为本申请提供的一种计算设备的结构示意图;
图6为本申请提供的一种计算设备集群的结构示意图。
具体实施方式
在对本申请实施例提供一种数据备份方法、设备以及***说明之前,对本申请涉及的“业务”这一概念进行说明:
本申请实施例提及的业务指的是对业务子***100需要处理的一些计算任务的统称;而具体到业务子***100内部,业务表现为业务子***100中的各个数据节点110需要执行的计算任务。在不同的场景中,业务的类型也不同。例如,在云场景下,业务子***100部署在云端,业务可以是部署在云端的云服务,如语音处理服务、视频处理服务、应用部署服务等;相应的,具体到业务子***100内部,任一数据节点110需要执行针对某用户或某语音的语音处理任务、针对某用户或某视频的视频处理任务、针对某用户或某视频处理任务。又例如,在文件管理场景下,业务是指与文件管理相关的一些计算任务,如文件的增删查改等;相应的,具体到业务子***100内部,任一数据节点110需要执行针对某用户的文件或某文件的计算任务。又例如,在电商场景下,业务可以为面向商品提供方以及商品购买方的交易业务;相应的,具体到业务子***100内部,任一数据节点110需要执行针对某商品提供方、某商品购买方或某商品的计算任务。
如图1所示,为本申请实施例提供的一种数据处理***架构示意图,该数据处理***10包括业务子***100以及备份子***200。
业务子***100承担了业务,能够执行一些计算任务。如业务子***100能够提供实现语音处理服务、视频处理服务、应用部署服务等云服务。又例如,业务子***100能够对文件进行管理,对文件进行增、删、查、改等操作。又例如,业务子***100能够支撑交易业务,作为媒介帮助商品提供方以及商品购买方完成交易。
业务子***100承担业务的过程实质上是对数据的处理过程。业务子***100中包括多个数据节点110。该多个数据节点110是业务子***100中用于承担业务的节点。每个数据节点110具备数据处理功能,能够完成针对数据的计算任务。本申请并不限定该数据节点110的硬件形态,数据节点110可以为服务器、移动终端等计算设备、也可以为包括有多个计算设备的数据中心。
每个数据节点110能够执行的针对数据的计算任务的具体内容不同,换个角度来说,每个数据节点110能够完成的计算任务所针对的数据不同,每个数据节点110只能够针对归属于该数据节点110的数据执行计算业务。所谓归属于该数据节点110的数据是指能够被该数据节点110访问,或存储在该数据节点110本地的数据。为了方便说明,归属于该数据节点110的数据可以简称为该数据节点110的数据。
数据节点110能够对该数据节点110的数据进行处理。数据节点110针对该数据节点110的数据执行计算任务,对这些数据进行处理以完成该计算任务。而对这些数据的处理过程与计算任务的具体内容有关。该计算任务可以是在已有的数据中增加新的数据、修改数据、删除已有的数据或读取的数据等。数据节点110在不执行计算任务时,也能够对该数据节点110的数据进行处理,如,数据节点110能够对数据节点110的数据进行重删(删除重复的数据),又如数据节点110可以自发的对数据节点110的数据进行备份,生成数据副本,该数据副本可以存储在数据节点110上,也可以存储在数据节点110之外的设备上(如存储在备份子***200中)。
本申请实施例并不限定数据节点110的数据的组织形式。该数据节点110的数据可以是以块(block)粒度组织的,每个数据块的大小固定,数据块是数据处理的最小粒度。该数据节点110的数据也可以是以文件(file)粒度组织的,通过这些文件分组,将同组的文件放置在一个目录中,在一个目录之下还可以放置其他文件,或目录(也称为子目录),形成了具备树状结构的“文件***”,该文件***可以为网络文件***(network file system,NFS)、或Hadoop分布式文件***(hadoop distribute file system,HDFS)。数据节点110对数据的处理是以文件为粒度的,如对在文件中增加数据、更新文件中的数据、删除文件、查看文件中的数据。该数据节点110的数据也可以是以对象粒度组织的。数据节点110对数据的处理是以对象为粒度的,与文件不同,对象存储中没有目录、以及层级的概念,是一种扁平化的数据存储方式。
在业务子***100中,数据的归属是可以发生变化的,也即归属于一个数据节点110的数据变更为归属于另一个数据节点110的数据。换个角度来说,在业务子***100允许各个数据节点110之间进行数据迁移。
在业务子***100内部配置有全局数据感知模块120,全局数据感知模块120能够感知业务子***100中数据的变化。如归属的变化,也即能够明确某数据是归属于哪一个数据节点110;又如,数据本身的变化,也即能够确定数据更新时间、更新前后的数据等。全局数据感知模块120维护有数据归属信息,该数据归属信息指示了数据的归属。也就是说,全局数据感知模块120能够感知到各个数据节点110之间进行数据迁移,在数据发生迁移,归属发生变化的情况下,能够及时的更新据归属信息。
全局数据感知模块120的配置使得部署在该业务子***100的上层应用程序不再需要感知业务子***100中数据的归属状态,当用户需要请求业务子***100执行计算任务时,用户只需要通过该上层应用程序告知业务子***100该计算任务所针对的数据的逻辑块地址(logical block address,LBA)(针对数据以块粒度组织的情况)、数据所属的文件名(针对数据以文件粒度组织的情况)、或数据所属的对象标识(identifier,ID)(针对数据以对象粒度组织的情况)。全局数据感知模块120获取用户所提供的信息,能够确定该计算任务所针对的数据归属的数据节点110,在业务子***100内部,即可触发所确定的该数据节点110执行计算任务。当数据节点110的数据是以文件为粒度组织的,该业务子***100也可以称为全局文件***(global file system,GFS)。
该全局数据感知模块120可以为软件模块,部署在该业务子***100中的一个或多个数据节点110上,也可以部署在该业务子***100中用于管理该一个或多个数据节点110的管理节点(在实际应用中该管理节点也可以是数据节点110,也即业务子***100中存在能够管理一个或多个数据节点110、并且能够针对数据执行计算任务的数据节点110)。该全局数据感知模块120可以为硬件模块,该硬件模块可以位于该业务子***100中的一个或多个数据节点110,也可以位于业务子***100中用于管理该一个或多个数据节点110的管理节点。
备份子***200主要用于数据备份,也即对业务子***100中的数据进行备份。具体到业务子***100内部,备份子***200能够对该业务子***100中的数据节点110的数据进行备份,保存各个数据节点110的数据副本,数据节点110的数据副本为数据节点110的数据的备份。
本申请实施例中并不限定该备份子***200的结构,例如,该备份子***200采用集中式的结构,该备份子***200存在一个备份节点,备份节点可以为服务器、移动终端等计算设备,各个数据节点110的数据副本集中存储在该备份节点上或存储在该备份节点所连接的存储装置(如硬盘等)上。又例如,该备份子***200采用分布式的结构,该备份子***200包括多个备份节点,各个数据节点110的数据副本分布存储在多个备份节点上或存储在该多个备份节点所连接的存储装置(如硬盘等)上。也就是说,从硬件层面上,本申请实施例对备份子***200的结构并不做限定。凡是能够具备数据备份能力的一个或多个计算设备均可以组建为备份子***200。
在本申请实施例中,备份子***200能够感知业务子***100中数据节点110之间的数据迁移,在业务子***100中数据节点110之间发生数据迁移的情况下,更新数据迁移所涉及的数据节点110的数据副本。
将数据节点110之前迁移的数据称为被迁移数据,被迁移数据在数据迁移前所归属的数据节点110称为源数据节点,被迁移数据在数据迁移后所归属的数据节点110称为目标数据节点。备份子***200在源数据节点与目标数据节点之间发生数据迁移时,更新源数据节点的数据副本,在该源数据节点的数据副本删除被迁移数据;更新目标数据节点的数据副本,在该目标数据节点的数据副本增加被迁移数据。
若在数据迁移之前,被迁移数据发生更新(如源数据节点对该被迁移数据进行处理,更新了其中部分或全部数据)且发生更新的该被迁移数据还未备份到该源数据节点的数据副本中,备份子***200在更新目标数据节点的数据副本时,还可以需要发生更新的该部分或全部数据更新到该目标数据节点的数据副本中。
也就是说,被迁移数据可以为已更新到源数据节点、且已备份到该源数据节点的数据副本中的数据,也可以为已更新到源数据节点、且未备份到该源数据节点的数据副本中的数据,还可以同时包括已更新到源数据节点且已备份到该源数据节点的数据副本中的数据、已更新到源数据节点且未备份到该源数据节点的数据副本中的数据。为方便说明,将已更新到源数据节点、且已备份到该源数据节点的数据副本中的数据称为固定数据,将已更新到源数据节点、且未备份到该源数据节点的数据副本中的数据称为更新数据。本申请实施例中,存在两种类型的更新数据,一种为针对已有的数据进行更新(如修改了已有数据中的一些字符或删除了已有数据中的一些字符)、且并未将更新后的数据更新到该源数据节点的数据副本中的数据,更新后的数据为更新数据。另一种为新增的数据、且未将新增的数据更新到该源数据节点的数据副本中的数据,新增的数据为更新的数据。
对于更新数据由于未更新到源数据节点的数据副本中,在数据迁移后,该更新数据已迁移到目标数据节点中,备份子***200在更新目标数据节点的数据副本时,还可以从目标数据节点中获取该更新数据,将该更新数据增加到该目标数据节点的数据副本中。
除此之外,备份子***200还能够在业务子系中数据节点110的请求下,对数据节点110的数据节点110进行备份,保存该数据节点110的数据副本。例如,对于业务子***100中的任一数据节点110可以主动进行数据备份(如周期性的进行数据备份或在数据节点110中的数据发生更新时进行数据备份),当数据节点110确定需要进行数据备份时,数据节点110可以向备份子***200发起备份请求,该备份请求用于请求对该数据节点110的数据进行备份。备份子***200在接收到该业务请求后,根据该业务请求对该数据节点110的数据进行备份,保存该数据节点110的数据副本。
如图2所示,为本申请实施例中备份子***200的逻辑结构示意图,从逻辑角度,该备份子***200包括备份业务管理模块210、数据引擎220、以及备份执行模块230。该备份子***200可以看做为备份装置,该备份装置包括备份业务管理模块210、数据引擎220、以及备份执行模块230。
备份业务管理模块210是备份子***200中的管理者,能够控制备份子***200中数据备份流程,数据备份流程是指对数据节点110的数据备份过程。备份业务管理模块210能够决定在什么情况下进行数据备份、决定需要数据备份的数据节点110、决定数据节点110中的哪些数据需要进行数据备份。当备份子业务需要针对不同数据节点110启动数据备份流程,备份业务管理模块210可以决定针对不同数据节点110启动数据备份流程的执行顺序。
备份业务管理模块210能够感知业务子***100中数据节点110之间的数据迁移。例如,备份业务管理模块210能够从业务子***100中的全局数据感知模块120获取数据迁移信息,该数据迁移信息与数据迁移相关的信息,该数据迁移信息指示了源数据节点以及目标数据节点,还可以指示被迁移数据。备份业务管理模块210在获取该数据迁移信息之后能够确定源数据节点与目标数据节点之间发生了数据迁移,向数据引擎220发送该数据迁移信息,以启动针对源数据节点以及目标数据节点的数据备份流程。
备份业务管理模块210还能够对外提供数据备份接口。例如,备份业务管理模块210可以面向业务子***100中的数据节点110提供数据备份接口,允许数据节点110通过该数据备份接口向备份业务管理模块210发送备份请求。备份业务管理模块210在接收到该备份请求后,可以告知数据引擎220需要备份数据的数据节点110,以启动针对该数据节点110的数据备份流程。又例如,备份业务管理模块210可以面向业务子***100中的全局数据感知模块120提供数据备份接口,允许全局数据感知模块120通过该数据备份接口向备份业务管理模块210发送数据迁移信息,以使得全局数据感知模块120启动针对源数据节点以及目标数据节点的数据备份流程。
数据引擎220与备份执行模块230是针对数据节点110的数据备份流程的主要执行者,数据引擎220与备份执行模块230相互配合对数据节点110进行数据备份,生成数据节点110的数据副本。
对于数据迁移引起的针对源数据节点以及目标数据节点的数据备份流程,数据引擎220从备份业务管理模块210获取数据迁移信息,确定数据迁移所涉及的源数据节点以及目标数据节点。数据引擎220授予备份执行模块230该源数据节点的数据副本以及目标数据节点的数据副本的操作权限,并请求备份执行模块230更新源数据节点的数据副本以及目标数据节点的数据副本。
备份执行模块230在接收到数据引擎220的请求后,更新源数据节点的数据副本以及目标数据节点的数据副本。在本申请实施例中,备份执行模块230能够分析出源数据节点与目标数据节点之间被迁移数据中的更新数据以及固定数据,这里所提及的分析出更新数据以及固定数据并非是指的是备份执行模块230已获取更新数据或固定数据的数据本身,而是指备份执行模块230能够分析出哪一些数据为更新数据,哪一些数据为固定数据,更新数据或固定数据实际上还是存储在源数据节点或目标数据节点上。
对于更新数据,备份执行模块230根据更新数据从目标数据节点的数据获取更新数据,将该更新数据更新到目标数据节点的数据副本。对于固定数据,由于固定数据与源数据节点的数据副本中的数据保持一致,也即固定数据也同样存储在该源数据节点的数据副本中。备份执行模块230可以将该源数据节点的数据副本中的固定数据迁移到目标数据节点的数据副本中。
对于数据节点110自行进行备份引起的针对数据节点110的数据备份流程,数据引擎220从备份业务管理模块210确定需要进行数据备份的数据节点110。数据引擎220授予备份执行模块230该数据节点110的数据副本的操作权限,并请求备份执行模块230更新数据节点110的数据副本。备份执行模块230在接收到数据引擎220的请求后,更新数据节点110的数据副本。
需要说明的是,备份子***200中每更新一次数据节点110的数据副本,可以创建备份数据快照,还可以生成备份数据映像。备份数据快照是对数据节点110的数据副本的快照,备份数据快照指示更新后数据节点110的数据副本的数据状态。备份数据快照可以理解为对数据节点110的数据副本的带有时间戳的“照片”,通过该数据节点110的备份数据快照能够确定该数据节点110的数据副本所包括的数据分布状态、数据的更新状态(也即确定哪些数据发生了更新)。在备份子***200中可以由备份执行模块230创建备份数据快照,也可以由管理数据节点110的数据副本的模块创建备份数据快照,例如数据节点110的数据副本中的数据是以文件组织的,那么,备份子***200中可以部署备份文件***,该备份文件***用于管理数据节点110的数据副本中的文件,每当数据节点110的数据副本更新后,备份文件***可以为该数据节点110的数据副本创建备份数据快照。
备份数据映像指示了数据节点110的数据副本与数据节点110的数据之间的对应关系。备份数据映像是指示了主数据(也即数据节点110上的数据)以及备份数据(也即数据节点110的数据副本)的对应关系。对于数据节点110的某个数据,通过备份数据映像能够确定数据节点110的某个数据在数据节点110的副本数据中的备份。通常情况下,数据节点110的数据副本中与数据节点110的该个数据对应的数据应当与数据节点110的该数据保持一致,也即保持主数据与备份数据的一致性。但在一些情况,如数据节点110的某数据未及时更新到数据节点110的数据副本中,数据节点110的数据副本中与数据节点110的该数据对应的数据可能不同。
在由于数据迁移引起的针对源数据节点以及目标数据节点的数据备份流程中,在备份执行模块230在更新源数据节点的数据副本以及目标数据节点的数据副本后,可以分别为源数据节点的数据副本以及目标数据节点的数据副本创建源数据节点的备份数据快照以及目标数据节点的备份数据快照,生成源数据节点的备份数据映像以及目标数据节点的备份数据映像。
图2中仅是示例性的展示了从逻辑角度对备份子***200划分的一种可能实现方式。本申请实施例并不限定从逻辑角度对备份子***200划分的方式,也即并不限定备份子***200的逻辑结构。实际实现时可以有另外的划分方式。在本申请的实施例中的各模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在本申请实施例中,备份子***200能够从业务子***100获取数据迁移信息,该数据迁移信息指示了发生数据迁移的源数据节点以及目标数据节点,备份子***200根据数据迁移信息更新该源数据节点以及目标数据节点的数据副本。备份子***200感知业务子***100中的数据迁移,保证该数据迁移所涉及的源数据节点以及目标数据节点及时获得更新,保证数据节点110的数据副本能够随着数据迁移自动发生更新,保证数据迁移与数据副本的更新的同步。
下面结合附图3对本申请实施例提供的数据备份方法进行说明,该方法包括:
步骤300:备份子***200对业务子***100中各个数据节点110的数据进行数据备份,备份子***200保存各个数据节点110的数据副本。
步骤300可以理解为备份子***200在业务子***100中的各个数据节点110之间发生数据迁移之前进行的数据备份操作。本申请实施例并不限定该备份子***200执行步骤300的方式,下面以备份子***200对任一数据节点110进行备份为例,提供两种可能的数据备份方式:
方式一、备份子***200主动进行数据备份。
备份子***200可以主动执行针对数据节点110的数据备份流程。备份子***200可以周期性的执行针对数据节点110的数据备份流程,或在不同时间段采用不同的频率执行针对数据节点110的数据备份流程。频率是指单位时间内针对同一数据节点110进行数据备份的次数。
备份子***200可以与业务子***100中的数据节点110进行交互,获取数据节点110的数据,对数据节点110进行数据备份,生成并保存该数据节点110的数据副本。具体到备份子***200内部,备份管理模块确定需要数据备份的数据节点110,通知数据引擎220需要数据备份的数据节点110,以启动针对该数据节点110的数据备份流程;数据引擎220请求备份执行模块230对该数据节点110进行数据备份,备份执行模块230从数据节点110中获取数据,生成该数据节点110的数据副本。
备份子***200也可以在用户的指示下执行针对数据节点110的数据备份流程。如用户可以通过部署在用户侧的设备向备份子***200下发备份指令,该备份指令用于请求备份子***200对数据节点110进行数据备份。备份子***200在接收到该备份指令后,可以获取数据节点110的数据,对数据节点110进行数据备份,生成并保存该数据节点110的数据副本。具体到备份子***200内部,备份管理模块接收该备份指令,确定需要进行数据备份的数据节点110,并告知数据引擎220需要进行数据备份的数据节点110,以启动针对该数据节点110的数据备份流程;数据引擎220请求备份执行模块230对该数据节点110进行数据备份,备份执行模块230从数据节点110中获取数据,生成该数据节点110的数据副本。
方式二、数据节点110主动触发数据备份。
数据节点110可以周期性的触发数据备份,也可以在该数据节点110的数据发生变化时主动触发数据备份。
在方式二中,数据节点110在确定需要进行数据备份时,可以向备份子***200发送备份请求,该备份请求用于请求对该数据节点110进行数据备份。备份子***200在接收到该备份请求后,获取该数据节点110的数据,生成该数据节点110的数据副本。具体到备份子***200内部,备份管理模块接收该备份请求,确定需要进行数据备份的数据节点110,并告知数据引擎220需要进行数据备份的数据节点110,以启动针对该数据节点110的数据备份流程;数据引擎220请求备份执行模块230对该数据节点110进行数据备份,备份执行模块230从数据节点110中获取数据,生成该数据节点110的数据副本。
从数据角度,备份子***200对数据节点110进行的数据备份可以为全量备份,也就是说,备份子***200每次备份的数据节点110的数据是该数据节点110的全部数据。备份子***200对数据节点110进行的数据备份也可以为增量备份,也就是说,备份子***200每次只需备份前一次对该数据节点110进行数据备份之后数据节点110的新数据(也即与前一次数据备份所备份的数据不同的数据)。
本申请实施例并不限定备份子***200对任一数据节点110执行步骤300的次数,也即对于该数据节点110未发生数据迁移的情况下,备份子***200均能够对该数据节点110执行步骤300。对于数据节点110之间发生数据迁移的情况,备份子***200可以采用步骤301~步骤305,对数据迁移所涉及的源数据节点以及目标数据节点进行数据备份。
下面以数据迁移前数据所归属的源数据节点为数据节点110A,数据迁移后数据所归属的目标数据节点为数据节点110B为例进行说明。
步骤301:数据节点110A与数据节点110B之间发生数据迁移,数据节点110A中的数据迁移到数据节点110B中。为方便说明,将从数据节点110A迁移到数据节点110B的数据称为被迁移数据。
在业务子***100中数据节点110A与数据节点110B之间发生数据迁移的情况有很多种。例如,数据节点110A的存储空间不足,数据节点110A可以将该数据节点110A的部分数据转移到数据节点110B上,释放数据节点110A的存储空间。又例如,数据节点110A运行缓慢、可能发生故障或需要暂停工作,为了保证业务的正常进行,可以将数据节点110A的所有数据迁移到数据节点110B上。又例如,数据节点110A与数据节点110B之间发生计算任务转移,数据节点110A无需继续针对一些数据执行计算任务,该计算任务需要交由数据节点110B继续执行。这种情况下,可以将该数据从数据节点110A迁移到数据节点110B中。
无论数据节点110A与数据节点110B之间在何种情况下发生数据迁移,数据节点110A与数据节点110B之间发生的数据迁移是需要被业务子***100中的全局数据感知模块120所感知的,也即全局数据感知模块120能够明确被迁移数据、以及该被迁移数据迁移前的归属(也即数据节点110A)以及迁移之后的归属(也即数据节点110B)。
步骤302:备份子***200中的备份业务管理模块210从业务子***100中获取数据迁移信息。该数据迁移信息指示了发生数据迁移的数据节点110A以及数据节点110B,可选的,该数据迁移信息还可以指示被迁移数据。
当全局数据感知模块120感知到数据节点110A与数据节点110B之间发生数据迁移,全局数据感知模块120可以向备份子***200发送数据迁移信息。全局数据感知模块120通过数据迁移信息告知备份子***200发送数据迁移的数据节点110A以及数据节点110B,还可以告知被迁移数据。
数据迁移信息指示数据节点110A以及数据节点110B的方式有很多种,例如,该数据迁移信息包括数据节点110A的标识以及数据节点110B的标识,通过数据节点110A的标识以及数据节点110B的标识分别指示数据迁移发生的源数据节点以及目标数据节点。数据节点110A的标识以及数据节点110B的标识是备份子***200能够识别的、且唯一标识数据节点110A以及数据节点110B的信息。本申请并不限定数据迁移信息指示数据节点110A以及数据节点110B的方式。
数据迁移信息还可以指示被迁移数据。本申请同样也不限定数据迁移信息指示被迁移数据的方式。数据迁移信息可以采用精细粒度的指示方式,使得备份子***200能够通过数据迁移信息明确该被迁移数据的存储地址(适用于数据以块粒度组织的情况)、所属文件(适用于数据以文件粒度组织的情况,事实上,在这种情况下,该数据节点110A以及数据节点110B之间的迁移是以文件为粒度进行迁移的,被迁移数据实际上是迁移的文件)、或所属对象(适用于数据以对象粒度组织的情况,事实上,在这种情况下,该数据节点110A以及数据节点110B之间的迁移是以对象为粒度进行迁移的,迁移的对象实际上是迁移的对象)。
例如,该数据迁移信息中可以包括被迁移数据的LBA(适用于数据以块粒度组织的情况)、被迁移数据所属的文件名(适用于数据以文件粒度组织的情况,被迁移数据所属的文件名实际上是迁移的文件的文件名,这里仅是为了表述方便用被迁移数据所属的文件名代指)、或被迁移数据所属的对象标识(适用于数据以对象粒度组织的情况,被迁移数据所属的对象标识名实际上是迁移的对象的对象标识,这里仅是为了表述方便用被迁移数据所属的对象标识代指)。
数据迁移信息也可以采用粗粒度的指示方式,使得备份子***200能够通过数据迁移信息明确该被迁移数据的大概范围,如确定该被迁移数据所属文件的上层文件;如确定该被迁移数据所属对象的桶。例如,该数据迁移信息中可以包括被迁移数据所属的文件名的上层文件的文件名、被迁移数据所属的对象的桶名(桶名为该桶的标识,用于唯一标识桶,一个桶中可以包括一个或多个对象)。
步骤303:备份业务管理模块210向数据引擎220发送该数据迁移信息。
备份管理模块在获取该数据迁移信息之后,解析该数据迁移信息能够确定业务子***100中在数据节点110A与数据节点110B之间发生了数据迁移。伴随着数据迁移,数据节点110A的数据副本以及数据节点110B的数据副本中的数据也需要发生迁移,数据节点110A的数据副本以及数据节点110B的数据副本需要进行更新,以完成对数据节点110A以及数据节点110B的数据备份。为了完成对数据节点110A以及数据节点110B的数据备份,备份管理模块将该数据迁移信息发送到数据引擎220。
步骤304:数据引擎220向备份执行模块230授予数据节点110A的数据副本以及数据节点110B的数据副本的操作权限,并请求备份执行模块230更新数据节点110A的数据副本以及数据节点110B的数据副本。
数据引擎220在获取数据迁移信息后,能够通过数据迁移信息确定发生数据迁移的数据节点110A以及数据节点110B。数据引擎220向备份执行模块230授予数据节点110A的数据副本以及数据节点110B的数据副本的操作权限。
对于任一数据节点110,数据节点110的数据副本的操作权限是指对该数据节点110的数据副本中的数据进行处理的能力。该处理包括不限于:增加数据、删除数据、查看数据、修改数据、查看数据节点110的数据副本的备份数据快照、查看数据节点110的备份数据映像。
以数据节点110的数据以文件为粒度组织为例。数据节点110的数据副本也是以文件为粒度组织的,形成了一个文件***。数据节点110的数据副本所形成的文件***可以称为数据节点110的备份文件***。当数据引擎220向备份执行模块230授予数据节点110的数据副本的操作权限,数据引擎220可以将该数据节点110的备份文件***挂载到该备份执行模块230,通过挂载,该数据节点110的备份文件***可以关联到该备份执行模块230,备份执行模块230能够对该数据节点110的备份文件***进行操作,如查看该数据节点110的备份文件***的目录,对文件进行增、删、查或改等操作,获取该数据节点110的备份文件***的备份数据快照。在步骤305中,数据引擎220可以将该数据节点110A的备份文件***以及数据节点110B的备份文件***挂载到该备份执行模块230,并请求该备份执行模块230更新数据节点110A的数据副本以及数据节点110B的数据副本,也即更新该数据节点110A的备份文件***以及数据节点110B的备份文件***中的文件。
步骤305:备份执行模块230更新数据节点110A的数据副本以及数据节点110B的数据副本。
首先,备份执行模块230可以确定数据节点110A与数据节点110B之间的被迁移数据。备份执行模块230确定被迁移数据存在如下三种可能的情况:
情况一、当数据迁移信息指示了该被迁移数据,且数据迁移信息采用精细粒度的方式指示了该被迁移数据。
备份执行模块230可以通过数据迁移信息确定直接该被迁移数据,如确定该被迁移数据的LBA、该被迁移数据所属的文件、或该被迁移数据所属的对象。
情况二、当数据迁移信息指示了该被迁移数据,且数据迁移信息采用粗粒度的方式指示了该被迁移数据。
备份执行模块230通过数据迁移信息通常只能确定该被迁移数据的大概范围,无法精确的确定该被迁移数据。备份执行模块230需要获取当前数据节点110A的元数据快照以及数据节点110B的元数据快照。数据节点110的元数据快照是数据节点110的元数据的快照,描述了当前数据节点110的元数据状态。数据节点110的元数据快照可以理解为对数据节点110的数据的元数据(matadata)的带有时间戳的“照片”,通过该数据节点110的元数据快照能够查看该时间戳表征的时间下该数据节点110A的数据的元数据。数据节点110的元数据用于描述该数据节点110的数据,通过该数据节点110的元数据能够确定该数据节点110的数据的分布状态、数据的更新状态等。以数据节点110A的数据以文件为粒度进行组织为例,数据节点110A的元数据快照能够描述当前数据节点110A的数据所形成为文件***的目录、各个文件的文件名等信息。
由于备份执行模块230通过数据迁移信息通常确定了该被迁移数据的大概范围,备份执行模块230可以集中对比当前数据节点110A的元数据快照以及数据节点110B的元数据快照中该大概范围内的信息,确定被迁移数据。
仍以数据节点110A的数据以文件为粒度进行组织为例,备份执行模块230通过数据迁移信息通常确定了该被迁移数据所属的文件的上层文件的文件名。备份执行模块230在当前数据节点110A的元数据快照以及数据节点110B的元数据快照中均查找该文件名所包括的文件,数据节点110A的元数据快照中该文件名所包括的文件与数据节点110B的元数据快照中该文件名所包括的文件的不同文件,即为迁移的文件。假如据节点A的元数据快照中该文件名所包括的文件分别为文件1、文件2,数据节点110B的元数据快照中该文件名所包括的文件分别为文件1、文件2、文件3、文件4。那么,文件3以及文件4为数据节点110A的元数据快照中该文件名所包括的文件与数据节点110B的元数据快照中该文件名所包括的文件的不同文件。文件3以及文件4即为迁移的文件。
情况三、数据迁移信息未指示该被迁移数据。
备份执行模块230需要调取当前数据节点110A的元数据快照以及数据节点110B的元数据快照,对比当前数据节点110A的元数据快照以及数据节点110B的元数据快照的信息,确定被迁移数据。与情况二不同的是,在情况三中,备份执行模块230需要对比当前数据节点110A的元数据快照以及数据节点110B的元数据快照的所有信息。
在备份执行模块230确定了被迁移数据之后,备份执行模块230可以直接更新数据节点110A的数据副本以及数据节点110B的数据副本。备份执行模块230可以从该数据节点110A的数据副本中删除该被迁移数据,从数据节点110B中获取被迁移数据,将该被迁移数据更新到该数据节点110B的数据副本中。以数据节点110的数据以文件为粒度进行组织为例,数据节点110之间的数据迁移是以文件为粒度的,也即会迁移整个文件,而非迁移文件中的部分数据。备份执行模块230在确定了被迁移数据所属的文件名后,可以从该数据节点110A的数据副本中删除该文件名所标识的文件,从数据节点110B中获取该文件名所标识的文件,将该文件更新到该数据节点110B的数据副本中。
因为被迁移数据在迁移之前可能存在其中部分或全部数据发生更新、且未及时更新到数据节点110A的数据副本的情况,也就是说,数据节点110A的数据副本中所保留的是未发生更新的数据。故而在更新数据节点110B的数据副本时,需要从数据节点110B中获取该文件名所标识文件,而非直接将数据节点110A的数据副本中该被迁移数据对应的数据迁移到数据节点110B的数据副本中。其中,数据节点110A的数据副本中该被迁移数据对应的数据即为该数据节点110A的数据副本中该被迁移数据的备份。
在备份执行模块230确定了被迁移数据之后,备份执行模块230也可以进一步分析该被迁移数据,确定该被迁移数据中的固定数据以及更新数据。被迁移数据中的固定数据是指被迁移数据中已经备份到该数据节点110A的数据副本中的数据。被迁移数据中的更新数据是指被迁移数据中未备份到该数据节点110A的数据副本中的数据。
仍以数据节点110的数据以文件为粒度进行组织为例,对于任一数据节点110来说,当数据节点110在对该数据节点110的文件进行更新时,可以仅更新该文件中的部分数据。比如,该删除该文件中的部分数据、修改该文件中的部分数据、在该文件中增加新的数据。那么,该文件中存在一些数据是未被更新的,也即未发生变化的。若该文件在从该数据节点110迁移出去之前,更新后的文件并未及时更新到数据节点110的数据副本。文件中发生更新的那部分数据即为更新数据,而文件中未更新的数据即为固定数据。该数据节点110的数据副本中保留有该文件中的固定数据,但对于更新数据,该数据节点110的数据副本仍保留的是更新之前的数据。
该数据节点110的数据副本中保留的更新之前的数据为数据节点110的数据副本中与该更新数据对应的数据。值得注意的是,数据更新的方式为数据进行修改的情况下,数据节点110的数据副本中与该更新数据对应的数据即为修改之前的数据。数据更新的方式为增加数据的情况下,更新数据即为新增加的数据,数据节点110的数据副本实质上并不存在与该更新数据对应的数据。
备份执行模块230确定该被迁移数据中的固定数据以及更新数据的方式有很多种。例如,备份执行模块230比对数据节点110A的数据副本中与被迁移数据对应的数据(简称为迁移备份数据)以及数据节点110B中被迁移数据,将迁移备份数据与数据节点110B中被迁移数据中相同的数据作为固定数据,数据节点110B中被迁移数据与迁移备份数据中不同的数据作为更新数据。其中,迁移备份数据可以根据数据节点110A的备份数据映射确定。
又例如,备份执行模块230对比数据节点110B中被迁移数据以及数据节点110A最近一次备份创建的备份数据快照中与被迁移数据对应的数据(简称为迁移备份数据),将数据节点110B中被迁移数据中与迁移备份数据中相同的数据作为固定数据,数据节点110B中的被迁移数据中迁移备份数据不同的数据作为更新数据。
这里以数据节点110B以及数据节点110A的数据以文件为粒度进行组织的情况下,对比数据节点110B中被迁移数据以及迁移备份数据的方式进行说明。
假设备份执行模块230已确定的迁移的文件为文件3以及文件4,备份执行模块230从数据节点110B读取数据节点110B中的文件3以及文件4,从数据节点110A最近一次备份创建的备份数据快照找到文件3以及文件4。文件所包含的数据可以进一步划分为多个数据块,数据节点110A的备份数据快照中可以描述该文件所包含的多个数据块。备份执行模块230可以以数据块粒度,对从数据节点110B读取的文件3以及份数据快照中的文件3进行比对,将相同的数据块作为固定数据,将不同的数据块作为更新数据;备份执行模块230以数据块粒度,对从数据节点110B读取的文件4以及备份数据快照中的文件4进行比对,将相同的数据块作为固定数据,将不同的数据块作为更新数据。
备份执行模块230在更新该数据节点110A的数据副本时,可以直接从该数据节点110A的数据副本删除与该被迁移数据对应的数据。
如图4所示,备份执行模块230在更新该数据节点110B的数据副本时,可以分别执行如下两个操作:
操作一、将数据节点110A的数据副本中与该被迁移数据对应的数据中的固定数据迁移到数据节点110B的数据副本中。
固定数据是在备份子***200内部完成迁移的。当数据节点110A的数据副本以及数据节点110B的数据副本存储在备份子***200中的同一个备份节点上,只需将数据节点110A的数据副本中的固定数据映射到据数据节点110B的数据副本就可以完成固定数据的迁移。也即修改数据节点110A的数据副本与所包括的数据之间的映射关系、以及数据节点110B的数据副本与所包括的数据之间的映射关系即可。当数据节点110A的数据副本以及数据节点110B的数据副本存储在备份子***200中的不同备份节点上,备份执行模块230对数据节点110A的数据副本中的固定数据进行拷贝,之后再将拷贝的固定数据移动到数据节点110A的数据副本中。
操作二、从数据节点110B中获取被迁移数据中的更新数据,将该更新数据更新到数据节点110B的数据副本中。
经过如上两个操作,备份执行模块230能够完成该数据节点110B的数据的一次备份,生成与当前数据节点110B的数据保证一致的数据节点110B的数据副本。且在更新该数据节点110B的数据副本的过程中,备份执行模块230对于固定数据是在备份子***200内部完成迁移,数据迁移过程简单、快速。对于更新数据,备份执行模块230仅需从数据节点110B中获取被迁移数据中的更新数据,能够有效的减少备份子***200与数据节点110B之间交互的数据量。
在一些场景中,备份执行模块230在更新数据节点110A的数据副本以及数据节点110B的数据副本时,可以将更新数据节点110A的数据副本以及数据节点110B的数据副本的操作分拆为多个子任务。在业务子***100中部署一个或多个备份执行子模块。每个备份执行子模块用于执行一个子任务,当然,备份执行模块230也可以执行子任务。子任务的分配可以是由备份执行模块230执行的,也可以是数据引擎220执行的。
例如,将更新数据节点110A的数据副本以及数据节点110B的数据副本的操作分拆为两个子任务,子任务A为对数据节点110A的数据副本的更新,子任务B为对数据节点110B的数据副本的更新。备份执行模块230用于完成子任务A,备份执行子模块用于完成子任务B。又例如,将更新数据节点110A的数据副本以及数据节点110B的数据副本的操作分拆为两个子任务,子任务M为将固定数据从数据节点110A的数据副本迁移到数据节点110B的数据副本,子任务B为将从数据节点110B获取的更新数据更新到数据节点110B的数据副本。备份执行模块230用于完成子任务M,备份执行子模块用于完成子任务N。
通过将更新数据节点110A的数据副本以及数据节点110B的数据副本的操作分拆为多个子任务,使得这些子任务可以同步进行,进一步更新数据节点110A的数据副本以及数据节点110B的数据副本的执行效率。
本申请还提供一种计算设备500。如图5所示,计算设备500包括:总线501、处理器502、存储器503和通信接口504。处理器502、存储器503和通信接口504之间通过总线501通信。计算设备500可以是服务器或终端设备。应理解,本申请不限定计算设备500中的处理器、存储器的个数。
总线501可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线501可包括在计算设备500各个部件(例如,存储器503、处理器502、通信接口504)之间传送信息的通路。
处理器502可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器503可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器502还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器503中存储有可执行的程序代码,处理器502执行该可执行的程序代码以分别实现前述备份业务管理模块210、数据引擎220、以及备份执行模块230的功能,从而实现对象处理方法。也即,存储器503上存有用于执行数据备份方法的计算机程序指令。
通信接口504使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备500与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图6所示,所述计算设备集群包括至少一个计算设备500。计算设备集群中的一个或多个计算设备500中的存储器503中可以存有相同的用于执行数据备份方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备500的存储器503中也可以分别存有用于执行数据备份方法的部分指令。换言之,一个或多个计算设备500的组合可以共同执行用于执行数据备份方法的指令。
需要说明的是,计算设备集群中的不同的计算设备500中的存储器503可以存储不同的指令,分别用于执行备份子***200的部分功能。也即,不同的计算设备500中的存储器503存储的指令可以实现备份业务管理模块210、数据引擎220、以及备份执行模块230中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行应用部署方法,或应用部署方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行应用部署方法,或指示计算设备执行应用部署方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (18)
1.一种数据备份方法,其特征在于,所述方法包括:
当第一数据节点与第二数据节点之间发生数据迁移,确定被迁移数据,所述被迁移数据为从所述第一数据节点迁移到所述第二数据节点的数据;
根据所述被迁移数据对所述第一数据节点的数据副本和所述第二数据节点的数据副本进行更新,所述第一数据节点的数据副本为发送数据迁移之前所述第一数据节点的数据的备份,所述第二数据节点的数据副本为发送数据迁移之前所述第二数据节点的数据的备份。
2.如权利要求1所述的方法,其特征在于,所述根据所述被迁移数据对所述第一数据节点的数据副本和所述第二数据节点的数据副本进行更新,包括:
从所述第一数据节点的数据副本删除所述被迁移数据,将所述被迁移数据更新到所述第二数据节点的数据副本。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取数据迁移信息,所述数据迁移信息指示发生数据迁移的所述第一数据节点以及所述第二数据节点。
4.如权利要求3所述的方法,其特征在于,所述数据迁移信息还指示了所述被迁移数据,所述确定被迁移数据,包括:
根据所述数据迁移信息确定所述被迁移数据。
5.如权利要求1~4任一项所述的方法,其特征在于,所述确定被迁移数据,包括:
获取所述第一数据节点的元数据快照以及所述第二数据节点的元数据快照,其中,所述第一数据节点的元数据快照指示所述第一数据节点的元数据,所述第一数据节点的元数据用于描述所述第一数据节点的数据,所述第二数据节点的元数据快照用于指示所述第二数据节点的元数据,所述第二数据节点的元数据用于描述所述第二数据节点的数据;
根据所述第一数据节点的元数据快照以及所述第二数据节点的元数据快照,确定所述被迁移数据。
6.如权利要求5所述的方法,其特征在于,所述被迁移数据包括更新数据或固定数据中的部分或全部,其中,所述更新数据为已更新到所述第一数据节点、且未备份到所述第一数据节点的数据副本中的数据,所述固定数据为已更新到所述第一数据节点、且已备份到所述第一数据节点的数据副本中的数据,所述将所述被迁移数据更新到所述第二数据节点的数据副本,包括:
将所述第一数据节点的数据副本中所述固定数据迁移到所述第二数据节点的数据副本中;或
从所述第二数据节点中获取的所述更新数据,将所述更新数据增加到所述第二数据节点的数据副本中。
7.如权利要求1~6任一项所述的方法,其特征在于,所述第一数据节点以及所述第二数据节点属于全局文件***GFS,所述全局文件***中所述第一数据节点的数据以及第二数据节点的数据以文件组织,基于所述全局文件***部署的上层应用程序不感知所述全局文件***内部数据的流动。
8.一种备份装置,其特征在于,所述装置包括:
备份执行模块,用于当第一数据节点与第二数据节点之间发生数据迁移,确定被迁移数据,所述被迁移数据为从所述第一数据节点迁移到所述第二数据节点的数据;根据所述被迁移数据对所述第一数据节点的数据副本和所述第二数据节点的数据副本进行更新,所述第一数据节点的数据副本为发送数据迁移之前所述第一数据节点的数据的备份,所述第二数据节点的数据副本为发送数据迁移之前所述第二数据节点的数据的备份。
9.如权利要求8所述的装置,其特征在于,所述备份执行模块在根据所述被迁移数据对所述第一数据节点的数据副本和所述第二数据节点的数据副本进行更新时,用于:
从所述第一数据节点的数据副本删除所述被迁移数据,将所述被迁移数据更新到所述第二数据节点的数据副本。
10.如权利要求8或9所述的装置,其特征在于,所述装置还包括备份业务管理模块,所述备份业务管理模块,用于:
获取数据迁移信息,所述数据迁移信息指示发生数据迁移的所述第一数据节点以及所述第二数据节点。
11.如权利要求10所述的装置,其特征在于,所述数据迁移信息还指示了所述被迁移数据,所述备份执行模块在确定被迁移数据时,用于:
根据所述数据迁移信息确定所述被迁移数据。
12.如权利要求8~11任一项所述的装置,其特征在于,所述备份执行模块在确定被迁移数据时,用于,包括:
获取所述第一数据节点的元数据快照以及所述第二数据节点的元数据快照,其中,所述第一数据节点的元数据快照指示所述第一数据节点的元数据,所述第一数据节点的元数据用于描述所述第一数据节点的数据,所述第二数据节点的元数据快照用于指示所述第二数据节点的元数据,所述第二数据节点的元数据用于描述所述第二数据节点的数据;
根据所述第一数据节点的元数据快照以及所述第二数据节点的元数据快照,确定所述被迁移数据。
13.如权利要求12所述的装置,其特征在于,所述被迁移数据包括更新数据或固定数据中的部分或全部,其中,所述更新数据为已更新到所述第一数据节点、且未备份到所述第一数据节点的数据副本中的数据,所述固定数据为已更新到所述第一数据节点、且已备份到所述第一数据节点的数据副本中的数据,所述备份执行模块在将所述被迁移数据更新到所述第二数据节点的数据副本,用于:
将所述第一数据节点的数据副本中所述固定数据迁移到所述第二数据节点的数据副本中;或
从所述第二数据节点中获取的所述更新数据,将所述更新数据增加到所述第二数据节点的数据副本中。
14.如权利要求8~13任一项所述的装置,其特征在于,所述第一数据节点以及所述第二数据节点属于全局文件***GFS,所述全局文件***中所述第一数据节点的数据以及第二数据节点的数据以文件组织,基于所述全局文件***部署的上层应用程序不感知所述全局文件***内部数据的流动。
15.一种计算设备,其特征在于,所述计算设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述计算设备执行如权利要求1~7任一项所述的方法。
16.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1~7任一项所述的方法。
17.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1~7任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1~7任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022113052032 | 2022-10-24 | ||
CN202211305203 | 2022-10-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117931510A true CN117931510A (zh) | 2024-04-26 |
Family
ID=90749521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211673590.5A Pending CN117931510A (zh) | 2022-10-24 | 2022-12-26 | 一种数据备份方法、装置及计算设备集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931510A (zh) |
-
2022
- 2022-12-26 CN CN202211673590.5A patent/CN117931510A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102594849B (zh) | 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置 | |
US10896102B2 (en) | Implementing secure communication in a distributed computing system | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US10579364B2 (en) | Upgrading bundled applications in a distributed computing system | |
US10705914B2 (en) | Group-based container checkpoint generation | |
US10949273B2 (en) | Shared memory usage tracking across multiple processes | |
US10642694B2 (en) | Monitoring containers in a distributed computing system | |
CN110377395B (zh) | 一种Kubernetes集群中的Pod迁移方法 | |
US10853189B2 (en) | Image restore from incremental backup | |
US10983908B1 (en) | Method and system for garbage collection of data protection virtual machines in cloud computing networks | |
CN111488241A (zh) | 在容器编排平台实现无代理备份与恢复操作的方法和*** | |
US10620871B1 (en) | Storage scheme for a distributed storage system | |
CN110825704B (zh) | 一种读数据方法、写数据方法及服务器 | |
CN114780252B (zh) | 数据仓库***的资源管理方法及装置 | |
WO2015051641A1 (zh) | 一种磁盘镜像空间回收的方法及装置 | |
CN103514298A (zh) | 一种实现文件锁的方法及元数据服务器 | |
US11112986B2 (en) | Systems and methods for storing information within hybrid storage with local and cloud-based storage devices | |
US12026066B2 (en) | Backing up data for a namespace assigned to a tenant | |
CN107566470B (zh) | 云数据***中管理虚拟机的方法和装置 | |
CN117931510A (zh) | 一种数据备份方法、装置及计算设备集群 | |
CN115098300A (zh) | 一种数据库的备份方法、容灾方法、装置及设备 | |
US11003504B2 (en) | Scaling virtualization resource units of applications | |
CN109947704B (zh) | 一种锁类型切换方法、装置及集群文件*** | |
US11824718B2 (en) | Determining configuration changes in a cloud computing environment | |
US20220342686A1 (en) | Virtual machine file management using file-level snapshots |
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 |