CN108573049A - 数据处理方法和分布式存储装置 - Google Patents

数据处理方法和分布式存储装置 Download PDF

Info

Publication number
CN108573049A
CN108573049A CN201810360426.6A CN201810360426A CN108573049A CN 108573049 A CN108573049 A CN 108573049A CN 201810360426 A CN201810360426 A CN 201810360426A CN 108573049 A CN108573049 A CN 108573049A
Authority
CN
China
Prior art keywords
data
snapshot
source node
file
node
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.)
Granted
Application number
CN201810360426.6A
Other languages
English (en)
Other versions
CN108573049B (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201810360426.6A priority Critical patent/CN108573049B/zh
Publication of CN108573049A publication Critical patent/CN108573049A/zh
Application granted granted Critical
Publication of CN108573049B publication Critical patent/CN108573049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据处理方法,应用于分布式存储装置,包括:确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点;获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件;将第一数据文件中的数据全部存入第二数据文件中;确定第二数据文件与第一快照文件之间的相同数据和差异数据;以及基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。本公开还提供了一种分布式存储装置。

Description

数据处理方法和分布式存储装置
技术领域
本公开涉及一种数据处理方法和分布式存储装置。
背景技术
分布式存储是指利用集群和分布式文件装置等技术,集合网络中大量的不同类型的存储设备,共同对外提供数据存储功能和业务访问功能的存储方式。
为了保证数据的安全性和高可用性,分布式存储装置通常会采用多副本机制,即当用户在分布式存储装置中存储一份数据时,分布式存储装置会根据用户设置的副本数(如3份),将这份数据存储为多份(如3份)。而当分布式存储装置的节点宕机或磁盘出现故障时,会导致数据的副本数减少。进一步,为了保证分布式存储装置中数据的副本数满足用户的需求,在节点宕机或磁盘出现故障后,通常会重新创建一个节点来恢复丢失的数据。
但是,在实现本公开构思的过程中,发明人发现现有技术中至少存在如下缺陷:对于分布式存储装置,现有的数据恢复方案极易影响装置的性能,导致装置响应过慢。
发明内容
本公开的一个方面提供了一种数据处理方法,应用于分布式存储装置,包括:确定源节点和目标节点,其中,上述源节点包括上述分布式存储装置中任一需要进行数据备份的数据存储节点,上述目标节点为上述源节点的备份节点;获取与上述源节点对应的第一数据文件和上述第一数据文件的第一快照文件,以及与上述目标节点对应的第二数据文件和上述第二数据文件的第二快照文件;将上述第一数据文件中的数据全部存入上述第二数据文件中;确定上述第二数据文件与上述第一快照文件之间的相同数据和差异数据;以及基于上述相同数据对应的数据索引和上述差异数据,确定上述第二快照文件中的存储内容。
可选地,上述分布式存储装置中需要进行数据备份的数据存储节点包括以下至少之一:上述分布式存储装置中出现宕机的数据存储节点;上述分布式存储装置中出现故障的数据存储节点;以及上述分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
可选地,获取与上述源节点对应的第一数据文件和上述第一数据文件的第一快照文件包括:在上述源节点宕机或者故障的情况下:从上述分布式存储装置的其他数据存储节点中获取上述源节点中的数据文件的副本数据文件以及上述源节点中的快照文件的副本快照文件;将上述副本数据文件作为上述第一数据文件;以及将上述副本快照文件作为上述第一快照文件,或者在上述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:获取上述源节点中的数据文件并将其作为上述第一数据文件;以及获取上述源节点中的快照文件并将其作为上述第一快照文件。
可选地,在上述源节点宕机或者故障的情况下,从上述分布式存储装置的其他数据存储节点中获取上述源节点中的快照文件的副本快照文件包括:判断上述分布式存储装置的其他数据存储节点中是否存在上述源节点中的快照文件的副本快照文件;若存在,则从上述分布式存储装置的其他数据存储节点中获取上述源节点中的快照文件的副本快照文件;以及若不存在,则从快照数据库中获取上述源节点中的快照文件的副本快照文件,或者在上述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取上述源节点中的快照文件包括:判断上述源节点中是否存在快照文件;若存在,则获取上述源节点中的快照文件;以及若不存在,则从快照数据库中获取上述源节点中的快照文件。
可选地,基于上述相同数据对应的数据索引和上述差异数据,确定上述第二快照文件中的存储内容包括:在上述源节点宕机或者故障的情况下:将上述相同数据对应的数据索引和上述差异数据本身存入上述第二快照文件中,或者在上述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:将上述相同数据对应的数据索引和上述差异数据对应的数据索引存入上述第二快照文件中。
本公开的另一个方面提供了一种分布式存储装置,包括:第一确定模块,用于确定源节点和目标节点,其中,上述源节点包括上述分布式存储装置中任一需要进行数据备份的数据存储节点,上述目标节点为上述源节点的备份节点;获取模块,用于获取与上述源节点对应的第一数据文件和上述第一数据文件的第一快照文件,以及与上述目标节点对应的第二数据文件和上述第二数据文件的第二快照文件;存储模块,用于将上述第一数据文件中的数据全部存入上述第二数据文件中;第二确定模块,用于确定上述第二数据文件与上述第一快照文件之间的相同数据和差异数据;以及第三确定模块,用于基于上述相同数据对应的数据索引和上述差异数据,确定上述第二快照文件中的存储内容。
可选地,上述分布式存储装置中需要进行数据备份的数据存储节点包括以下至少之一:上述分布式存储装置中出现宕机的数据存储节点;上述分布式存储装置中出现故障的数据存储节点;以及上述分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
可选地,上述获取模块包括:第一获取单元,用于在上述源节点宕机或者故障的情况下,从上述分布式存储装置的其他数据存储节点中获取上述源节点中的数据文件的副本数据文件以及上述源节点中的快照文件的副本快照文件;将上述副本数据文件作为上述第一数据文件;以及将上述副本快照文件作为上述第一快照文件,或者第二获取单元,用于在上述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取上述源节点中的数据文件并将其作为上述第一数据文件;以及获取上述源节点中的快照文件并将其作为上述第一快照文件。
可选地,上述第一获取单元包括:第一判断子单元,用于判断上述分布式存储装置的其他数据存储节点中是否存在上述源节点中的快照文件的副本快照文件;第一获取子单元,用于在判断出上述分布式存储装置的其他数据存储节点中存在上述源节点中的快照文件的副本快照文件的情况下,从上述分布式存储装置的其他数据存储节点中获取上述源节点中的快照文件的副本快照文件;以及第二获取子单元,用于在判断出上述分布式存储装置的其他数据存储节点中不存在上述源节点中的快照文件的副本快照文件的情况下,从快照数据库中获取上述源节点中的快照文件的副本快照文件,或者上述第二获取单元包括:第二判断子单元,用于判断上述源节点中是否存在快照文件;第三获取子单元,用于在判断出上述源节点中存在上述快照文件的情况下,获取上述源节点中的快照文件;以及第四获取子单元,用于在判断出上述源节点中不存在上述快照文件的情况下,从快照数据库中获取上述源节点中的快照文件。
可选地,上述第三确定模块包括:第一确定单元,用于在上述源节点宕机或者故障的情况下,将上述相同数据对应的数据索引和上述差异数据本身存入上述第二快照文件中,或者第二确定单元,用于在上述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,将上述相同数据对应的数据索引和上述差异数据对应的数据索引存入上述第二快照文件中。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的数据处理方法。
本公开的另一个方面提供了一种计算机装置,包括:一个或多个处理器;计算机可读存储介质,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的数据处理方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的数据处理方法和分布式存储装置的应用场景;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3A示意性示出了根据本公开实施例的获取第一数据文件和第一快照文件的流程图;
图3B示意性示出了根据本公开另一实施例的获取第一数据文件和第一快照文件的流程图;
图3C示意性示出了根据本公开实施例的获取源节点中的快照文件的副本快照文件的流程图;
图3D示意性示出了根据本公开实施例的获取源节点中的快照文件的流程图;
图3E示意性示出了根据本公开实施例的数据文件的索引节点的示意图;
图3F示意性示出了根据本公开实施例的数据文件的索引节点和快照文件的索引节点的示意图;
图3G示意性示出了根据本公开另一实施例的数据文件的索引节点和快照文件的索引节点的示意图;
图4示意性示出了根据本公开实施例的分布式存储装置的框图;
图5A示意性示出了根据本公开实施例的获取模块的框图;
图5B示意性示出了根据本公开实施例的另一获取模块的框图;
图5C示意性示出了根据本公开实施例的第一获取单元的框图;
图5D示意性示出了根据本公开实施例的第二获取单元的框图;
图5E示意性示出了根据本公开实施例的第三确定模块的框图;
图5F示意性示出了根据本公开另一实施例的第三确定模块的框图;以及
图6示意性示出了根据本公开实施例的适于实现数据处理方法的计算机装置的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的装置”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的装置等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的装置”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的装置等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行装置使用或者结合指令执行装置使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体装置、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种数据处理方法,应用于分布式存储装置,包括:确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点;获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件;将第一数据文件中的数据全部存入第二数据文件中;确定第二数据文件与第一快照文件之间的相同数据和差异数据;以及基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。
由于本公开提供的数据处理方法可以应用在分布式存储装置中,故而在介绍本公开实施例之前,先行介绍分布式存储装置的一些特性。
分布式存储是指利用集群和分布式文件装置等技术,集合网络中大量的不同类型的存储设备,共同对外提供数据存储功能和业务访问功能的存储方式。分布式存储装置正是采用分布式存储这种方式,将数据分散的存储在多台独立的存储设备上。与传统的存储装置相比,分布式存储装置具有高可用性、高扩展性、高可靠性和低成本的特性。
传统的存储装置在做定期维护和升级时,通常会导致服务的临时中断。而分布式存储装置在做维护和升级的同时,还能为用户提供服务,即不需要中止用户的数据的存储业务和读取业务,因此分布式存储装置具有高可用性。
分布式存储装置还可以具有高扩展性,其可以将各种异构的存储设备(即不同类型的存储设备)接入到分布式存储装置中。也即分布式存储装置可以动态延伸,用户可以根据数据量的需求和自己拥有的计算资源将存储设备动态加入到分布式存储装置中。
分布式存储装置还可以具有高可靠性。由于分布式存储装置采用的是多副本容错机制,因此即便在分布式存储装置中有一部分节点(又称为服务器)出现宕机或者失效,也不会影响用户对数据的读取和写入,保证了用户存储的数据的安全性。
分布式存储装置还可以保证低成本,即分布式存储装置对接入其中的存储设备没有特殊的要求,比如对于用户原有的存储设备,可以接入到分布式存储装置中,进而提高了用户资源的重复利用率,降低了用户的成本。
需要说明的是,分布式存储装置采用的多副本容错机制可以是采用EC机制,还可以采用保存完全相同的副本的机制。
下面以保存完全相同的副本的机制介绍分布式存储装置的高可靠性。
当用户在分布式存储装置中存储一份数据时,分布式存储装置可以根据用户设置需要保存的副本数(如3份),存储该副本数份(如3份)的数据。当分布式存储装置中的存储设备出现宕机或者磁盘出现故障时,剩余的多个副本仍然可以保证用户数据的安全性,并可以给用户提供正确的数据。当多副本中的某个副本所在的节点宕机或者磁盘故障之后,用户数据的副本数会减少,此时分布式存储装置为了保证数据具有副本数份(即高可靠性),可以在节点宕机或者磁盘故障的故障域中重新选择一个节点来重新存储数据,以恢复用户数据到副本数份。
例如,用户在分布式存储装置中创建了一个文件file1,且用户设置该文件file1中存储的副本数为3,则分布式存储装置可以在不同的故障域中存储3份相同的文件file1。当其中一个文件file1所在的节点宕机或者磁盘故障之后,用户存储的文件file1只剩下2份。当用户要请求读取或者写入文件file1时,分布式存储装置同样能提供服务,但是,为了保证分布式存储装置的高可靠性和数据的安全性,分布式存储装置会在节点宕机或者磁盘故障的故障域中再选择一个节点,重新拷贝文件file1至该节点,以便可以重新恢复文件file1到3个副本数。
在本公开的实施例中,分布式存储装置还可以具有快照功能,即为数据文件创建快照文件,该快照功能可以采用写时复制(Copy On Write,简称为COW)机制实现。COW机制是指在用户创建快照文件的时候,并没有真正的拷贝数据,而是在对数据文件进行修改写时,先触发拷贝数据文件中的数据到快照文件,且在拷贝完之后,再对数据文件进行修改写。其中,快照文件和数据文件都是在分布式存储装置中都是单独的文件。
例如,分布式存储装置在第一时刻为数据文件1“创建”了快照文件1,但此时的“创建”还未将数据文件1中的数据拷贝到快照文件1中。在第二时刻,用户修改了数据文件1,此时,可以先触发COW机制,将数据文件1中的数据拷贝到快照文件1中,且再拷贝完成之后,可以进一步执行修改数据文件1的操作。
图1示意性示出了根据本公开实施例的数据处理方法和分布式存储装置的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、装置、环境或场景。
如图1所示,本公开实施例的应用场景可以包括分布式存储装置100,该分布式存储装置100可以包括服务器101、服务器102和服务器103,该服务器101、服务器102和服务器103可以通过云端104通信。在服务器101、服务器102和服务器103中分别存储了一个数据文件和该数据文件的快照文件。假设服务器103出现宕机或者服务器103的磁盘出现故障,则会导致数据文件和快照文件减少为两份。为了保证分布式存储装置100中的数据的份数满足用户的需求,在服务器103宕机或磁盘出现故障后,通常会重新创建一个服务器来恢复丢失的数据。
此时,可以通过本公开实施例的数据处理方法,确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点;获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件;将第一数据文件中的数据全部存入第二数据文件中;确定第二数据文件与第一快照文件之间的相同数据和差异数据;以及基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。
如图2所示,该数据处理方法可以包括操作S201~操作S205,其中:
在操作S201,确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点。
在操作S202,获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件。
在操作S203,将第一数据文件中的数据全部存入第二数据文件中。
在操作S204,确定第二数据文件与第一快照文件之间的相同数据和差异数据。
在操作S205,基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。
在本公开的实施例中,分布式存储装置中可以包括多个存储设备,例如多个服务器,其中,每个存储设备均可以构成分布式存储装置中的一个节点。
根据本公开的实施例,源节点又可以称为源存储设备,例如源服务器,该源节点可以表示分布式存储装置中任一需要进行数据备份的数据存储节点。目标节点又可以称为目标存储设备,例如目标服务器,该目标节点可以表示源节点的备份节点,也可以用于存储备份的数据。
根据本公开的实施例,源节点可以对应有第一数据文件和第一数据文件的第一快照文件。其中,第一数据文件可以存储在源节点中,也可以是存储在其他数据存储节点中;第一快照文件可以存储在源节点中,也可以是存储在其他数据存储节点中,还可以存储在外部存储设备例如快照数据库中。在源节点宕机或者故障,或者需要对其创建备份节点的情况下,可以执行本公开实施例提供的方案,即在恢复或备份第一数据文件和第一快照文件时,可以不用全部拷贝第一快照文件中的数据,而是可以采用先恢复或备份第一数据文件,再恢复或备份第一快照文件的方式。
具体地,在先恢复或备份第一数据文件时,可以把第一数据文件的数据全部拷贝到目标节点中的第二数据文件中。在恢复或备份第一快照文件时,可以不必全部拷贝第一快照文件中的数据,而是可以先确定第二数据文件和第一快照文件之间的相同数据和差异数据,并基于相同数据在目标节点中的数据索引和差异数据,确定第二快照文件的内容。例如,在源节点宕机或者故障的情况下,可以将差异数据拷贝到第二快照文件中,对于剩下的相同数据,可以确定相同数据在目标节点中的数据索引,并将该数据索引拷贝到第二快照文件中。
根据本公开的实施例,由于第一数据文件与第二数据文件中存储的内容相同,因此确定差异数据不仅可以基于第二数据文件与第一快照文件确定,还可以基于第一数据文件和第一快照文件确定。在基于第一数据文件和第一快照文件确定差异数据时,由于在创建第一快照文件时,源节点记录并存储了该第一数据文件与第一快照文件的差异数据,因此可以直接从源节点中获取预先存储的差异数据。应该理解,在确定完差异数据后,剩下的数据可以为相同数据。
需要说明的是,数据索引可以用于表示数据在节点中的存储位置,其中,数据索引可以包括但不限于物理地址。数据索引可以存储在文件的索引节点(inode)中,其中,每个文件均可以对应一个索引节点,比如可以将文件的文件名与该文件的索引节点相关联。应该明确,文件的索引节点可以存储在该文件中。
根据本公开的实施例,第一数据文件的索引节点可以存储在该第一数据文件中,第一快照文件的索引节点可以存储在第一快照文件中。相应地,第二数据文件的索引节点可以存储在该第二数据文件中,第二快照文件的索引节点可以存储在第二快照文件中。
在本公开的实施例中,第一快照文件可以包括至少一个快照文件,且第一快照文件中的快照文件个数可以与第二快照文件中的快照文件个数相同。
根据本公开的实施例,在第一快照文件包括多个快照文件时,恢复或备份该多个快照文件可以按照该多个快照文件创建的时间由新到旧的顺序进行恢复或备份,并且在恢复或备份该多个快照文件时,可以分别确定该多个快照文件与第二数据文件的差异数据和相同数据,并基于相同数据在第二数据文件的索引节点中的数据索引和差异数据确定第二快照文件的内容。
与本公开的实施例不同,目前在节点宕机或故障后,现有技术通常采用的恢复方式是重新拷贝数据,即无论是数据文件还是快照文件均是采用将数据文件或者快照文件直接拷贝到新选出来的副本节点中。假设用户设置的副本数是三副本机制,则数据文件和快照文件在分布式存储装置中各存储了完全相同的三个副本,其中,该三个副本的关系可以为一主两从。即对于数据文件而言,三个完全相同的数据文件中包括一个主数据文件和两个从数据文件;对于快照文件而言,三个完全相同的快照文件中包括一个主快照文件和两个从快照文件。在节点宕机或故障后,现有技术是从存在的两副本中选择一个副本的数据进行拷贝,以保证数据最终存储的数据的份数为三份。但是,对于分布式存储装置,现有的数据恢复方案极易影响装置的性能,导致装置响应过慢。
通过本公开的实施例,在分布式存储装置恢复或备份第一数据文件和第一快照文件的过程中,利用第一快照文件是由第一数据文件克隆出来的特殊属性,在将第一数据文件完整拷贝到第二数据文件之后,第一快照文件不需要再全部拷贝,而是可以先确定第二数据文件和第一快照文件的相同数据和差异数据,并基于相同数据在第二数据文件中的数据索引和差异数据确定第二快照文件的内容,进而可以减少分布式存储装置在恢复或备份数据时的I/O读写请求操作,提高了装置的响应速度。
下面参考图3A~图3D,结合具体实施例对图2所示的方法做进一步说明。
作为一种可选的实施例,分布式存储装置中需要进行数据备份的数据存储节点可以包括以下至少之一:分布式存储装置中出现宕机的数据存储节点;分布式存储装置中出现故障的数据存储节点;以及分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
在本公开的实施例中,在分布式存储装置中的某个数据存储节点出现宕机或者故障例如磁盘故障时,为了保证分布式存储装置的高可靠性,可以将出现宕机或者故障的数据存储节点进行数据恢复或者备份,此时该数据存储节点可以称为源节点。
根据本公开的实施例,在分布式存储装置中的某个数据存储节点既未出现宕机也未出现故障,但是需要为该数据存储节点创建备份节点时,可以将该数据存储节点称为源节点。
例如,为了保证分布式存储装置的高可靠性,可以将数据存储节点1中存储的数据进行备份,例如将该数据保存为3份,此时可以将该数据存储节点1确定为源节点,并且可以根据本公开提供的数据处理方案为该数据存储节点1创建备份节点例如目标节点,以便可以对该数据存储节点1中的数据进行备份。
通过本公开的实施例,可以根据实际需求确定分布式存储装置中需要进行数据恢复或数据备份的数据存储节点,以便可以保证分布式存储装置的高可靠性。
作为一种可选的实施例,获取与源节点对应的第一数据文件和第一数据文件的第一快照文件可以包括:在源节点宕机或者故障的情况下:从分布式存储装置的其他数据存储节点中获取源节点中的数据文件的副本数据文件以及源节点中的快照文件的副本快照文件;将副本数据文件作为第一数据文件;以及将副本快照文件作为第一快照文件,或者在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:获取源节点中的数据文件并将其作为第一数据文件;以及获取源节点中的快照文件并将其作为第一快照文件。
图3A示意性示出了根据本公开实施例的获取第一数据文件和第一快照文件的流程图。
如图3A所示,获取与源节点对应的第一数据文件和第一数据文件的第一快照文件可以包括操作S301~操作S303,其中:
在操作S301,在源节点宕机或者故障的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的数据文件的副本数据文件以及源节点中的快照文件的副本快照文件。
在操作S302,将副本数据文件作为第一数据文件。
在操作S303,将副本快照文件作为第一快照文件。
在本公开的实施例中,源节点可以对应有副本节点,其中,该副本节点又称为其他数据存储节点。基于分布式存储装置的多副本机制,可以将数据文件和快照文件存储在源节点中,并将数据文件的副本数据文件和快照文件的副本快照文件存储在其他数据存储节点中。其中,数据文件和副本数据文件中存储的内容可以是相同的,快照文件和副本快照文件中存储的内容可以是相同的。
根据本公开的实施例,由于在源节点宕机或者故障的情况下,无法从该源节点中获取数据文件和快照文件,此时可以从其他数据存储节点中获取副本数据文件和副本快照文件,并将获取的副本数据文件作为第一数据文件,将获取的副本快照文件作为第一快照文件。
需要说明的是,在其他数据存储节点包括多个时,可以从该多个其他数据存储节点中的任一节点中获取副本数据文件和副本快照文件。
通过本公开的实施例,在源节点宕机或者故障的情况下,可以依据分布式存储装置的多副本机制,从分布式存储装置的其他数据存储节点中确定源节点对应的第一数据文件和第一快照文件,进而可以实现对第一数据文件和第一快照文件恢复或备份的目的。
图3B示意性示出了根据本公开另一实施例的获取第一数据文件和第一快照文件的流程图。
如图3B所示,获取与源节点对应的第一数据文件和第一数据文件的第一快照文件可以包括操作S401和操作S402,其中:
在操作S401,在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取源节点中的数据文件并将其作为第一数据文件。
在操作S402,获取源节点中的快照文件并将其作为第一快照文件。
在本公开的实施例中,为了保证分布式存储装置的高可靠性,可以为源节点创建备份节点,以对源节点中的数据文件和快照文件进行备份。
具体地,可以获取源节点中的数据文件并将其作为第一数据文件,还可以获取源节点中的数据文件的快照文件,并将该快照文件作为第一快照文件。进一步,可以根据本公开提供的方案对第一数据文件和第一快照文件进行备份。
通过本公开的实施例,在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,可以对源节点中的第一数据文件和第一快照文件进行备份,以保证分布式存储装置的高可靠性。
作为一种可选的实施例,在源节点宕机或者故障的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件包括:判断分布式存储装置的其他数据存储节点中是否存在源节点中的快照文件的副本快照文件;若存在,则从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件;以及若不存在,则从快照数据库中获取源节点中的快照文件的副本快照文件,或者在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取源节点中的快照文件包括:判断源节点中是否存在快照文件;若存在,则获取源节点中的快照文件;以及若不存在,则从快照数据库中获取源节点中的快照文件。
图3C示意性示出了根据本公开实施例的获取源节点中的快照文件的副本快照文件的流程图。
如图3C所示,在源节点宕机或者故障的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件可以包括操作S501~操作S503,其中:
在操作S501,判断分布式存储装置的其他数据存储节点中是否存在源节点中的快照文件的副本快照文件。
在操作S502,若存在,则从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件。
在操作S503,若不存在,则从快照数据库中获取源节点中的快照文件的副本快照文件。
在本公开的实施例中,分布式存储装置不仅可以根据第二数据文件和第一快照文件的差异数据优化数据恢复或备份的过程,还可以优化装置存储空间。
具体地,由于快照文件属于冷数据,在分布式存储装置将快照文件存储到其上的固态硬盘(Solid State Drives,简称为SSD)等存储设备后,可以定时将快照文件以及快照文件和数据文件的差异数据存储到外部存储设备例如快照文件库中,以便可以节省分布式存储装置的存储空间。
根据本公开的实施例,在需要从其他数据存储节点中获取副本快照文件时,首先可以判断该数据存储节点中是否存储有副本快照文件,若有,则可以直接从该数据存储节点中获取该副本快照文件,若没有,则可以从外部设备例如快照数据库中获取该副本快照文件。
通过本公开的实施例,在获取副本快照文件之前,可以判断该副本快照文件的存储位置,以便可以准确的从该存储位置获取副本快照文件。
图3D示意性示出了根据本公开实施例的获取源节点中的快照文件的流程图。
如图3D所示,在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取源节点中的快照文件可以包括操作S601~操作S603,其中:
在操作S601,判断源节点中是否存在快照文件。
在操作S602,若存在,则获取源节点中的快照文件。
在操作S603,若不存在,则从快照数据库中获取源节点中的快照文件。
在本公开的实施例中,在需要为源节点创建备份节点的情况下,可以从该源节点中获取快照文件。但是,由于分布式存储装置可能会定时将快照文件移到外部存储设备例如快照数据库,因此,在获取源节点的快照文件之前,可以首先判断该源节点中是否存储有快照文件,若有,则可以从源节点中直接获取快照文件,若没有,则可以从外部存储设备例如快照数据库中获取快照文件。
通过本公开的实施例,在获取快照文件之前,可以判断该快照文件的存储位置,以便可以准确的从该存储位置获取快照文件。
作为一种可选的实施例,基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容包括:在源节点宕机或者故障的情况下:将相同数据对应的数据索引和差异数据本身存入第二快照文件中,或者在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件中。
目前,现有技术中基于COW机制拷贝数据文件为快照文件的操作分为三步。其中,第一步为创建快照文件,大小等于数据文件;第二步为从数据文件中读取所有的数据;第三步为将读取的数据写入快照文件。但是,现有技术将数据文件中的所有数据都拷贝到快照文件中会严重增加磁盘的I/O读写请求操作,极易影响装置的性能,导致装置的响应过慢。
而在本公开的实施例中,在拷贝数据文件为快照文件时,可以执行第一步即创建快照文件。但是在创建完快照文件之后,可以不执行第二步和第三步,而是将数据文件的索引节点中的数据索引拷贝到快照文件中的索引节点的中,本公开的实施例通过修改索引节点这一元数据便可以完成创建快照文件,进而可以减少I/O读写请求操作,提高装置的响应速度。
下面结合图3E~图3G详细介绍本公开实施例的创建快照文件的操作。
图3E示意性示出了根据本公开实施例的数据文件的索引节点的示意图。
如图3E所示,在第一时刻,数据文件A中存储有12K的数据,其中,1K~4K的数据对应的地址为数据索引B1,5K~8K的数据对应的地址为数据索引B2,9K~12K的数据对应的地址为数据索引B3,该数据索引B1、数据索引B2、和数据索引B3可以存储在数据文件A的索引节点A中。
图3F示意性示出了根据本公开实施例的数据文件的索引节点和快照文件的索引节点的示意图。
如图3F所示,快照文件B为数据文件A在第一时刻的快照,假设在第二时刻,用户修改写数据文件A,则可以触发创建快照文件B的操作,此时,分布式存储装置可以为该快照文件B分配索引节点B且创建快照文件B时,可以是直接将索引节点A中的数据索引拷贝到索引节点B中。
图3G示意性示出了根据本公开另一实施例的数据文件的索引节点和快照文件的索引节点的示意图。
如图3G所示,在创建快照文件B之后,分布式存储装置可以执行对数据文件A的修改写操作,例如,修改了数据文件A的1K~4K的数据,则修改了数据文件A对应索引节点A’,且修改后的1K~4K的数据可以对应数据索引B1_1。
基于此,在本公开的实施例中,在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,可以基于上述实施例,将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件的索引节点中。在源节点宕机或者故障的情况下,由于无法从该源节点中获取数据和数据索引,因此可以将相同数据对应的数据索引存入第二快照文件的索引节点中,并将差异数据本身存入第二快照文件中。
通过本公开的实施例,在创建第二快照文件时,可以依据实际情况确定存储第二快照文件中的内容,即在源节点宕机或者故障的情况下,可以将相同数据对应的数据索引和差异数据本身存入第二快照文件中;在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,可以将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件中,进而可以减少I/O读写请求操作,提高装置的响应速度。
为了进一步说明本公开实施例恢复或备份第一数据文件和第一快照文件的操作过程,下面将以源节点宕机或者出现故障为例详细说明。
需要说明的是,第一快照文件可以包括至少一个快照文件,其中,每个快照文件可以用于表示第一数据文件在不同时刻所存储的数据,且两两相邻的时刻所对应的快照文件可以是不同的。
根据本公开的实施例,在恢复或备份第一快照文件时,可以依照快照文件的建立时间逐个恢复或备份。具体地,可以按照建立时间从新到旧的顺序依次恢复或备份第一快照文件中的多个快照文件。
根据本公开的实施例,在分布式存储中,HOST1、HOST2和HOST3上分别存储了数据文件A以及数据文件A在不同时刻的快照文件B和快照文件C。在HOST1宕机或者出现故障、或者需要为其建立备份节点的情况下,可以选择HOST4存储数据文件A的内容、快照文件B的内容和快照文件C的内容。其中,HOST1可以称为源节点,HOST4可以称为目标节点,数据文件A可以称为第一数据文件,快照文件B和快照文件C可以称为第二数据文件。在恢复数据文件A、快照文件B和快照文件C时,可以先恢复数据文件A中的内容,并将数据文件A的内容完整的拷贝到HOST4中的数据文件A’(可以称为第二数据文件)中。进一步,可以恢复快照文件B和快照文件C。由于快照文件C的建立时间比快照文件B的建立时间新,因此可以先恢复快照文件C。
具体地,可以确定数据文件A’与快照文件C的差异数据和相同数据。比如在创建完快照文件C之后,对数据文件A进行修改,此时HOST1可以将数据文件A和快照文件C的差异数据记录下来,例如修改了数据文件A中1K~4K的数据,则快照文件C和数据文件A的差异数据为1K~4K的数据。则恢复快照文件C时,可以将1K~4K的数据拷贝到HOST4中的快照文件C’中,对于剩下的相同数据,可以将HOST4中数据文件A’中该相同数据对应的数据索引拷贝到快照文件C’中。
进一步,可以恢复快照文件B。例如修改了数据文件A中5K~8K的数据,则快照文件B和数据文件A的差异数据是5K~8K的数据。但是由于后来又创建了快照文件C,且修改写了数据文件A的1K~4K的数据。则快照文件B和快照文件C的差异数据为5K~8K的数据,所以恢复快照文件B时,可以从HOST2或者HOST3拷贝5K~8K的数据,对于剩下的相同数据,可以从快照文件C’的索引节点中确定出该相同数据的数据索引并将其拷贝到快照文件B’的索引节点中。
图4示意性示出了根据本公开实施例的分布式存储装置的框图。
如图4所示,该分布式存储装置400可以包括第一确定模块410、获取模块420、存储模块430、第二确定模块440和第三确定模块450。其中:
第一确定模块410用于确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点。
获取模块420用于获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件。
存储模块430用于将第一数据文件中的数据全部存入第二数据文件中。
第二确定模块440用于确定第二数据文件与第一快照文件之间的相同数据和差异数据。
第三确定模块450用于基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。
通过本公开的实施例在分布式存储装置恢复或备份第一数据文件和第一快照文件的过程中,利用第一快照文件是由第一数据文件克隆出来的特殊属性,在将第一数据文件完整拷贝到第二数据文件之后,第一快照文件不需要再全部拷贝,而是可以先确定第二数据文件和第一快照文件的相同数据和差异数据,并基于相同数据在第二数据文件中的数据索引和差异数据确定第二快照文件的内容,进而可以减少分布式存储装置在恢复或备份数据时的I/O读写请求操作,提高了装置的响应速度。
作为一种可选的实施例,该分布式存储装置中需要进行数据备份的数据存储节点可以包括以下至少之一:分布式存储装置中出现宕机的数据存储节点;分布式存储装置中出现故障的数据存储节点;以及分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
通过本公开的实施例,可以根据实际需求确定分布式存储装置中需要进行数据恢复或数据备份的数据存储节点,以便可以保证分布式存储装置的高可靠性。
作为一种可选的实施例,获取模块可以包括:第一获取单元,用于在源节点宕机或者故障的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的数据文件的副本数据文件以及源节点中的快照文件的副本快照文件;将副本数据文件作为第一数据文件;以及将副本快照文件作为第一快照文件,或者第二获取单元,用于在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取源节点中的数据文件并将其作为第一数据文件;以及获取源节点中的快照文件并将其作为第一快照文件。
图5A示意性示出了根据本公开实施例的获取模块的框图。
如图5A所示,获取模块420可以包括第一获取单元421,其中:
第一获取单元421用于在源节点宕机或者故障的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的数据文件的副本数据文件以及源节点中的快照文件的副本快照文件;将副本数据文件作为第一数据文件;以及将副本快照文件作为第一快照文件。
通过本公开的实施例,在源节点宕机或者故障的情况下,可以依据分布式存储装置的多副本机制,从分布式存储装置的其他数据存储节点中确定源节点对应的第一数据文件和第一快照文件,进而可以实现对第一数据文件和第一快照文件恢复或备份的目的。
图5B示意性示出了根据本公开实施例的另一获取模块的框图。
如图5B所示,获取模块420可以包括第二获取单元422,其中:
第二获取单元422用于在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取源节点中的数据文件并将其作为第一数据文件;以及获取源节点中的快照文件并将其作为第一快照文件。
通过本公开的实施例,在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,可以对源节点中的第一数据文件和第一快照文件进行备份,以保证分布式存储装置的高可靠性。
作为一种可选的实施例,第一获取单元可以包括:第一判断子单元,用于判断分布式存储装置的其他数据存储节点中是否存在源节点中的快照文件的副本快照文件;第一获取子单元,用于在判断出分布式存储装置的其他数据存储节点中存在源节点中的快照文件的副本快照文件的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件;以及第二获取子单元,用于在判断出分布式存储装置的其他数据存储节点中不存在源节点中的快照文件的副本快照文件的情况下,从快照数据库中获取源节点中的快照文件的副本快照文件,或者第二获取单元可以包括:第二判断子单元,用于判断源节点中是否存在快照文件;第三获取子单元,用于在判断出源节点中存在快照文件的情况下,获取源节点中的快照文件;以及第四获取子单元,用于在判断出源节点中不存在快照文件的情况下,从快照数据库中获取源节点中的快照文件。
图5C示意性示出了根据本公开实施例的第一获取单元的框图。
如图5C所示,第一获取单元421可以包括第一判断子单元4211、第一获取子单元4212和第二获取子单元4213,其中:
第一判断子单元4211用于判断分布式存储装置的其他数据存储节点中是否存在源节点中的快照文件的副本快照文件。
第一获取子单元4212用于在判断出分布式存储装置的其他数据存储节点中存在源节点中的快照文件的副本快照文件的情况下,从分布式存储装置的其他数据存储节点中获取源节点中的快照文件的副本快照文件。
第二获取子单元4213用于在判断出分布式存储装置的其他数据存储节点中不存在源节点中的快照文件的副本快照文件的情况下,从快照数据库中获取源节点中的快照文件的副本快照文件。
通过本公开的实施例,在获取副本快照文件之前,可以先判断该副本快照文件的存储位置,以便可以准确的从该存储位置获取副本快照文件。
图5D示意性示出了根据本公开实施例的第二获取单元的框图。
如图5D所示,第二获取单元422可以包括第二判断子单元4221、第三获取子单元4222和第四获取子单元4223,其中:
第二判断子单元4221用于判断源节点中是否存在快照文件。
第三获取子单元4222用于在判断出源节点中存在快照文件的情况下,获取源节点中的快照文件。
第四获取子单元4223用于在判断出源节点中不存在快照文件的情况下,从快照数据库中获取源节点中的快照文件。
通过本公开的实施例,在获取快照文件之前,可以先判断该快照文件的存储位置,以便可以准确的从该存储位置获取快照文件。
作为一种可选的实施例,第三确定模块可以包括:第一确定单元,用于在源节点宕机或者故障的情况下,将相同数据对应的数据索引和差异数据本身存入第二快照文件中,或者第二确定单元,用于在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件中。
图5E示意性示出了根据本公开实施例的第三确定模块的框图。
如图5E所示,第三确定模块450可以包括第一确定单元451,其中:
第一确定单元451用于在源节点宕机或者故障的情况下,将相同数据对应的数据索引和差异数据本身存入第二快照文件中。
通过本公开的实施例,在创建第二快照文件时,可以依据实际情况确定存储第二快照文件中的内容,即在源节点宕机或者故障的情况下,可以将相同数据对应的数据索引和差异数据本身存入第二快照文件中,进而可以减少I/O读写请求操作,提高装置的响应速度。
图5F示意性示出了根据本公开另一实施例的第三确定模块的框图。
如图5F所示,第三确定模块450可以包括第二确定单元452,其中:
第二确定单元452用于在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件中。
通过本公开的实施例,在创建第二快照文件时,可以依据实际情况确定存储第二快照文件中的内容,即在源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,可以将相同数据对应的数据索引和差异数据对应的数据索引存入第二快照文件中,进而可以减少I/O读写请求操作,提高装置的响应速度。
根据本公开的实施例的模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上装置、基板上的装置、封装上的装置、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一确定模块410、获取模块420、存储模块430、第二确定模块440、第三确定模块450、第一获取单元421、第二获取单元422、第一确定单元451、第二确定单元452、第一判断子单元4211、第一获取子单元4212、第二获取子单元4213、第二判断子单元4221、第三获取子单元4222和第四获取子单元4223中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块410、获取模块420、存储模块430、第二确定模块440、第三确定模块450、第一获取单元421、第二获取单元422、第一确定单元451、第二确定单元452、第一判断子单元4211、第一获取子单元4212、第二获取子单元4213、第二判断子单元4221、第三获取子单元4222和第四获取子单元4223中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上装置、基板上的装置、封装上的装置、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块410、获取模块420、存储模块430、第二确定模块440、第三确定模块450、第一获取单元421、第二获取单元422、第一确定单元451、第二确定单元452、第一判断子单元4211、第一获取子单元4212、第二获取子单元4213、第二判断子单元4221、第三获取子单元4222和第四获取子单元4223中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现数据处理方法的计算机装置的框图。图6示出的计算机装置仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机装置600包括处理器610和计算机可读存储介质620。该计算机装置600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体装置、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括模块621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,第一确定模块410、获取模块420、存储模块430、第二确定模块440、第三确定模块450、第一获取单元421、第二获取单元422、第一确定单元451、第二确定单元452、第一判断子单元4211、第一获取子单元4212、第二获取子单元4213、第二判断子单元4221、第三获取子单元4222和第四获取子单元4223中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/装置中所包含的;也可以是单独存在,而未装配入该设备/装置/装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现:确定源节点和目标节点,其中,源节点包括分布式存储装置中任一需要进行数据备份的数据存储节点,目标节点为源节点的备份节点;获取与源节点对应的第一数据文件和第一数据文件的第一快照文件,以及与目标节点对应的第二数据文件和第二数据文件的第二快照文件;将第一数据文件中的数据全部存入第二数据文件中;确定第二数据文件与第一快照文件之间的相同数据和差异数据;以及基于相同数据对应的数据索引和差异数据,确定第二快照文件中的存储内容。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的装置、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行装置、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行装置、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的装置来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (10)

1.一种数据处理方法,应用于分布式存储装置,包括:
确定源节点和目标节点,其中,所述源节点包括所述分布式存储装置中任一需要进行数据备份的数据存储节点,所述目标节点为所述源节点的备份节点;
获取与所述源节点对应的第一数据文件和所述第一数据文件的第一快照文件,以及与所述目标节点对应的第二数据文件和所述第二数据文件的第二快照文件;
将所述第一数据文件中的数据全部存入所述第二数据文件中;
确定所述第二数据文件与所述第一快照文件之间的相同数据和差异数据;以及
基于所述相同数据对应的数据索引和所述差异数据,确定所述第二快照文件中的存储内容。
2.根据权利要求1所述的方法,其中,所述分布式存储装置中需要进行数据备份的数据存储节点包括以下至少之一:
所述分布式存储装置中出现宕机的数据存储节点;
所述分布式存储装置中出现故障的数据存储节点;以及
所述分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
3.根据权利要求2所述的方法,其中,获取与所述源节点对应的第一数据文件和所述第一数据文件的第一快照文件包括:
在所述源节点宕机或者故障的情况下:
从所述分布式存储装置的其他数据存储节点中获取所述源节点中的数据文件的副本数据文件以及所述源节点中的快照文件的副本快照文件;
将所述副本数据文件作为所述第一数据文件;以及
将所述副本快照文件作为所述第一快照文件,
或者
在所述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:
获取所述源节点中的数据文件并将其作为所述第一数据文件;以及
获取所述源节点中的快照文件并将其作为所述第一快照文件。
4.根据权利要求3所述的方法,其中:
在所述源节点宕机或者故障的情况下,从所述分布式存储装置的其他数据存储节点中获取所述源节点中的快照文件的副本快照文件包括:
判断所述分布式存储装置的其他数据存储节点中是否存在所述源节点中的快照文件的副本快照文件;
若存在,则从所述分布式存储装置的其他数据存储节点中获取所述源节点中的快照文件的副本快照文件;以及
若不存在,则从快照数据库中获取所述源节点中的快照文件的副本快照文件,
或者
在所述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下,获取所述源节点中的快照文件包括:
判断所述源节点中是否存在快照文件;
若存在,则获取所述源节点中的快照文件;以及
若不存在,则从快照数据库中获取所述源节点中的快照文件。
5.根据权利要求2所述的方法,其中,基于所述相同数据对应的数据索引和所述差异数据,确定所述第二快照文件中的存储内容包括:
在所述源节点宕机或者故障的情况下:
将所述相同数据对应的数据索引和所述差异数据本身存入所述第二快照文件中,
或者
在所述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:
将所述相同数据对应的数据索引和所述差异数据对应的数据索引存入所述第二快照文件中。
6.一种分布式存储装置,包括:
第一确定模块,用于确定源节点和目标节点,其中,所述源节点包括所述分布式存储装置中任一需要进行数据备份的数据存储节点,所述目标节点为所述源节点的备份节点;
获取模块,用于获取与所述源节点对应的第一数据文件和所述第一数据文件的第一快照文件,以及与所述目标节点对应的第二数据文件和所述第二数据文件的第二快照文件;
存储模块,用于将所述第一数据文件中的数据全部存入所述第二数据文件中;
第二确定模块,用于确定所述第二数据文件与所述第一快照文件之间的相同数据和差异数据;以及
第三确定模块,用于基于所述相同数据对应的数据索引和所述差异数据,确定所述第二快照文件中的存储内容。
7.根据权利要求6所述的装置,其中,所述分布式存储装置中需要进行数据备份的数据存储节点包括以下至少之一:
所述分布式存储装置中出现宕机的数据存储节点;
所述分布式存储装置中出现故障的数据存储节点;以及
所述分布式存储装置中既未出现宕机也未出现故障但需要为其创建备份节点的数据存储节点。
8.根据权利要求7所述的装置,其中,所述获取模块包括:
第一获取单元,用于在所述源节点宕机或者故障的情况下:
从所述分布式存储装置的其他数据存储节点中获取所述源节点中的数据文件的副本数据文件以及所述源节点中的快照文件的副本快照文件;
将所述副本数据文件作为所述第一数据文件;以及
将所述副本快照文件作为所述第一快照文件,
或者
第二获取单元,用于在所述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:
获取所述源节点中的数据文件并将其作为所述第一数据文件;以及
获取所述源节点中的快照文件并将其作为所述第一快照文件。
9.根据权利要求8所述的装置,其中:
所述第一获取单元包括:
第一判断子单元,用于判断所述分布式存储装置的其他数据存储节点中是否存在所述源节点中的快照文件的副本快照文件;
第一获取子单元,用于在判断出所述分布式存储装置的其他数据存储节点中存在所述源节点中的快照文件的副本快照文件的情况下,从所述分布式存储装置的其他数据存储节点中获取所述源节点中的快照文件的副本快照文件;以及
第二获取子单元,用于在判断出所述分布式存储装置的其他数据存储节点中不存在所述源节点中的快照文件的副本快照文件的情况下,从快照数据库中获取所述源节点中的快照文件的副本快照文件,
或者
所述第二获取单元包括:
第二判断子单元,用于判断所述源节点中是否存在快照文件;
第三获取子单元,用于在判断出所述源节点中存在所述快照文件的情况下,获取所述源节点中的快照文件;以及
第四获取子单元,用于在判断出所述源节点中不存在所述快照文件的情况下,从快照数据库中获取所述源节点中的快照文件。
10.根据权利要求7所述的装置,其中,所述第三确定模块包括:
第一确定单元,用于在所述源节点宕机或者故障的情况下:
将所述相同数据对应的数据索引和所述差异数据本身存入所述第二快照文件中,
或者
第二确定单元,用于在所述源节点既未出现宕机也未出现故障但需要为其创建备份节点的情况下:
将所述相同数据对应的数据索引和所述差异数据对应的数据索引存入所述第二快照文件中。
CN201810360426.6A 2018-04-20 2018-04-20 数据处理方法和分布式存储装置 Active CN108573049B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810360426.6A CN108573049B (zh) 2018-04-20 2018-04-20 数据处理方法和分布式存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810360426.6A CN108573049B (zh) 2018-04-20 2018-04-20 数据处理方法和分布式存储装置

Publications (2)

Publication Number Publication Date
CN108573049A true CN108573049A (zh) 2018-09-25
CN108573049B CN108573049B (zh) 2022-03-25

Family

ID=63575064

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810360426.6A Active CN108573049B (zh) 2018-04-20 2018-04-20 数据处理方法和分布式存储装置

Country Status (1)

Country Link
CN (1) CN108573049B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256278A (zh) * 2020-11-09 2021-01-22 Oppo广东移动通信有限公司 编译方法、装置、设备及存储介质
CN113391949A (zh) * 2020-03-13 2021-09-14 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070043790A1 (en) * 2005-08-18 2007-02-22 Emc Corporation Snapshot indexing
CN103412824A (zh) * 2013-07-19 2013-11-27 华为技术有限公司 写时拷贝快照方法及装置
CN104216801A (zh) * 2014-09-04 2014-12-17 北京联创信安科技有限公司 一种面向虚拟化环境的数据复制方法及系统
CN104714858A (zh) * 2013-12-13 2015-06-17 中国移动通信集团公司 数据备份方法及装置、数据恢复方法及装置
CN105068856A (zh) * 2015-07-16 2015-11-18 武汉噢易云计算有限公司 基于镜像快照的虚拟机备份系统及备份方法
CN106547759A (zh) * 2015-09-17 2017-03-29 伊姆西公司 用于选择增量备份方式的方法和装置
CN106598785A (zh) * 2016-12-16 2017-04-26 广东美晨通讯有限公司 文件系统备份与还原的方法及装置
CN106777219A (zh) * 2016-12-23 2017-05-31 北京亚细亚智业科技有限公司 用于虚拟化数据中心的数据处理方法及装置
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070043790A1 (en) * 2005-08-18 2007-02-22 Emc Corporation Snapshot indexing
CN103412824A (zh) * 2013-07-19 2013-11-27 华为技术有限公司 写时拷贝快照方法及装置
CN104714858A (zh) * 2013-12-13 2015-06-17 中国移动通信集团公司 数据备份方法及装置、数据恢复方法及装置
CN104216801A (zh) * 2014-09-04 2014-12-17 北京联创信安科技有限公司 一种面向虚拟化环境的数据复制方法及系统
CN105068856A (zh) * 2015-07-16 2015-11-18 武汉噢易云计算有限公司 基于镜像快照的虚拟机备份系统及备份方法
CN106547759A (zh) * 2015-09-17 2017-03-29 伊姆西公司 用于选择增量备份方式的方法和装置
CN106598785A (zh) * 2016-12-16 2017-04-26 广东美晨通讯有限公司 文件系统备份与还原的方法及装置
CN106777219A (zh) * 2016-12-23 2017-05-31 北京亚细亚智业科技有限公司 用于虚拟化数据中心的数据处理方法及装置
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391949A (zh) * 2020-03-13 2021-09-14 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN112256278A (zh) * 2020-11-09 2021-01-22 Oppo广东移动通信有限公司 编译方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN108573049B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
US20210182190A1 (en) Intelligent die aware storage device scheduler
US10169167B2 (en) Reduced recovery time in disaster recovery/replication setup with multitier backend storage
US9459967B2 (en) Cascade ordering
US11797403B2 (en) Maintaining a synchronous replication relationship between two or more storage systems
CN108369487B (zh) 用于在去重虚拟文件系统中拍摄快照的系统和方法
US11112977B2 (en) Filesystem enhancements for unified file and object access in an object storage cloud
US10922009B2 (en) Mirroring write operations across data storage devices
US9971528B2 (en) Cold storage aware object replication
JP2017531250A (ja) 粒状同期/半同期アーキテクチャ
US11645237B2 (en) Replicating data utilizing a virtual file system and cloud storage
US11789651B2 (en) Compliance monitoring event-based driving of an orchestrator by a storage system
US11023159B2 (en) Method for fast recovering of data on a failed storage device
US20200341674A1 (en) Method, device and computer program product for restoring data
CN108228678B (zh) 一种多副本数据恢复方法及装置
US20150355978A1 (en) Systems and methods for backing up storage volumes in a storage system
US20230118103A1 (en) Temporarily Limiting Access To A Storage Device
US11055013B2 (en) Recovering from data loss using copy services relationships between volumes
CN108573049A (zh) 数据处理方法和分布式存储装置
US10976941B2 (en) Validation of storage volumes that are in a peer to peer remote copy relationship
US9715477B2 (en) Shared-bandwidth multiple target remote copy
US9767116B1 (en) Optimized object status consistency within clustered file systems
WO2023070025A1 (en) Declarative provisioning of storage
US20130179415A1 (en) Reducing Duplicate Information when Reporting System Incidents
US11036416B2 (en) Deduplicated storage with multiple storage domains
US10712959B2 (en) Method, device and computer program product for storing data

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