文件备份和恢复的方法和设备与流程

文档序号:15829004发布日期:2018-11-03 00:15阅读:163来源:国知局

本公开涉及数据存储领域,并且更具体地涉及文件备份和恢复的方法及系统。

背景技术

网络附加存储(nas,networkattachedstorage)设备通常在局域网中被布置为网络的一个节点。由于nas设备直接布置在局域网上,因此允许用户在网络上直接存取数据。在这种布置中,nas设备可以集中管理和处理网络上的所有数据,减少了应用或企业服务器的负载,降低了成本。

在网络上接收到大量数据后,网络附加存储设备为了保证数据的安全,需要对接收的数据进行备份处理。在备份处理的过程中一般是通过备份管理系统将网络附加存储设备上的数据存储于备份存储系统中。通常在备份数据时,会将数据的所有信息存储于备份系统中;当要恢复备份数据时,需要在备份系统中检索相应的数据。由于在备份系统中检索时需要进行大量的比较操作,且备份系统的处理速度比较慢,因此使得数据的恢复过程时间延长,导致恢复备份数据的成本提高。



技术实现要素:

本公实施例的目的在于提供一种文件备份和恢复的方法。

根据本公开的第一方面,提供了一种文件备份的方法。该方法包括接收包括待备份的文件和描述所述文件的属性的元数据;将元数据存储到缓存中;将文件存储到用于数据备份的存储设备;从存储设备接收指示文件在存储设备中的存储位置的信息;以及将信息以如下地址存储在缓存中,所述地址基于元数据而确定。

在某些实施例中,元数据包括:文件类型的指示信息;元数据的存储位置的指示信息。

在某些实施例中,地址基于元数据而确定包括:基于文件类型指示信息和存储位置的指示信息确定地址。

在某些实施例中,存储位置的信息包括文件在存储设备中的位置信息、类型信息、存储单元id以及偏移信息。

根据本公开的第二方面提供了一种文件恢复方法。该方法包括接收用于文件恢复的数据;基于接收的数据在缓存中确定描述文件的属性的元数据;基于元数据确定缓存中指示文件在存储设备中的存储位置的信息;基于存储位置从存储设备中获得文件;以及发送文件以实现文件恢复。

在某些实施例中,用于文件恢复的数据包括:元数据的存储位置的指示信息

本公开的第三方面提供了一种电子设备。该电子设备包括:处理器;缓存,其用于存储接收的数据;存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令以控制该文件备份系统执行动作,该动作包括:接收包括待备份的文件和描述所述文件的属性的元数据;将元数据存储到缓存中;将文件存储到用于数据备份的存储设备;从存储设备接收指示所述文件在存储设备中的存储位置的信息;以及将信息以如下地址存储在缓存中,该地址基于所述元数据而确定。

本公开的第四方面提供了一种电子设备。该电子设备包括:处理器;缓存,其用于存储接收的数据;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令以控制该文件恢复系统执行动作,该动作包括:接收用于文件恢复的数据;基于接收的数据在缓存中确定描述文件的属性的元数据;基于元数据确定所述缓存中指示文件在存储设备中的存储位置的信息;基于存储位置从所述存储设备中获得所述文件;以及发送文件以实现文件恢复。

本公开的第五方面提供了一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行本公开的第一方面和第二方面中的方法的步骤。

应当理解,发明内容部分并非旨在标识本公开的实施例的关键或重要特征,亦非旨在用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了根据本公开的实施例的存储系统100的架构图;

图2示出了根据本公开的实施例的数据的映射关系200的示意图;

图3图示了根据本公开的实施例的用于文件备份的方法300的流程图;

图4图示了根据本公开的实施例的用于文件恢复的方法400的流程图;

图5图示了根据本公开的实施例的用于文件备份的装置500的框图;

图6图示了根据本公开的实施例的用于文件恢复的装置600的框图;以及

图7示出了适于用来实施本公开内容的实施例的示例设备700的示意性框图。

在各个附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。

如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。

网络附加存储(nas)设备通常用于存储网络上的数据,在对其数据进行备份时,通常是将nas设备中的数据通过文件备份系统备份至备份存储器,备份的数据包括文件、目录文件、访问控制列表acl等。由于数据直接备份于存储设备,在进行数据恢复时通常需要在备份存储器检索目录,通过比较来获得数据。由于备份存储器内数据量较大,且其运行速度较慢,导致数据备份和恢复的速度降低,增加了其使用成本。

为了解决至少上述问题及其它潜在问题,本公开的实施例提供了一种文件备份和恢复的解决方案。在该解决方案中,通过在文件备份系统内设置缓存来提高数据备份和恢复的效率。

图1示出了根据本公开的实施例的存储系统100的架构图。存储系统100包括数据存储设备104。在一个示例中,数据存储设备104可以为网络附加存储nas设备。nas设备104可以连接到网络上,并从网络上接收大量的数据。存储系统100还包括通过文件备份系统102及备份存储器106。在该示例中,文件备份系统为文件备份系统,用于对待存储的数据进行备份。为了保证存储设备中数据的安全性,文件备份系统102将数据存储设备104上的数据备份到备份存储器106中。备选地或附加地,数据存储设备也可对其它的数据存储设备。

存储设备104为用于存储数据的装置,为了数据安全性其需要对数据进行备份。存储设备104可以nas设备、直连式存储(das)设备、存储网络(san)设备以及其它存储数据并对数据进行备份的设备。

备份存储器106为用于存储大容量数据的存储设备。该存储设备可以包括各种易失性和/或非易失性数据存储介质。存储介质的示例可以包括但不限于磁盘、光盘、硬盘、固态硬盘(ssd)、高速缓存。

为了实现快速存取备份存储器112中的数据,在文件备份系统中设置了高速缓存112,在高速缓存112中存储数据备份的关键数据,以实现数据的快速备份。文件备份系统102中还包括存储器108和控制器110。

在该示例中,图1中的数据存储设备110为nas设备,其通过网络数据管理协议(ndmp)向文件备份系统112传输数据,传送的数据中包括待备份的文件以及描述文件属性的元数据,元数据包括在nas设备中存储的文件的文件类型、名称、大小、路径、文件的索引结点值等信息中的一个或多个。备选地或附加地,索引结点值为在nas设备中存储的文件的元数据的存储位置的指示信息。一个示例中,该指示信息可以为地址信息。在另一示例中,该指示信息为nas设备中分配的专用于标识节点的值,例如,索引节点信息以类似数组的方式存储,则节点值为数组中的位置。下面参考图2说细描述通过缓存实现文件备份的过程。

在图2示出了根据本公开的实施例的数据的映射关系的示意图。当文件备份系统102从nas设备接收到待备份的数据后,从数据中获得文件的类型指示信息及索引结点(inode)值。将文件的类型指示信息和索引结点值形成一条数据201存储在缓存中。接收的备份数据包含文件较多时会形成多条数据201、202、203…,将这些形成的数据存储在缓存中。在一个示例中,可以以数组的形式存储生成的多条数据,在其它示例中,也可以其它合适的方式存储这些生成的数据。备选地或附加地,形成的多条数据可以存储在指定的存储空间。

数据201、202、203…中的两部分数据形成两个映射地址。在一个示例中,由文件类型指示信息获得的数据作为第一地址映射到相应的树,如类型为文件时,该指示信息映射至文件树的根结点的存储地址。类似的文件类型为目录或访问控制列表时,文件类型指示信息映射到目录树或访问控制列表树的根结点的存储地址。附加地或备选地,文件的类型可以为计算机内使用的各种文件的类型。

以数据201为例,当基于其文件类型指示信息映射到文件树的根结点后,然后基于其索引结点值映射到文件树的根结点,即在查找到文件树根结点的地址后,再基于索引结点值找到文件树的叶子结点的地址。在一个示例中,索引结点可以由8位16进制数据表示。通过将8位数字分成多个部分来表示树的多个层。例如以位数2、3、3的形式划分8位数字形成树的三个层。参见图2,数据201中的索引结点值为“0x02001001”,在其对应的树划分为三层,每层对应于索引节点的2位、3位、3位。例如将数据201以“02”、“001”、“001”划分,从而如图2所示,找到文件树的叶子结点001。在其它示例中,索引结点也可以其它形式划分。在另一示例中,索引结点的值可为设置为具有任何位数的值。类似的,数据202、203也可以以这种方式映射至对应的树的叶子结点处。

在上述描述中,基于接收的文件类型指示信息和索引结点值在缓存内确定了一个地址,即树的叶子结点。该地址存储的信息为下面描述的信息。由于在缓存中备份了元数据的信息,而要备份的包括文件的数据则被传送到备份存储器106。在备份存储器106中存储了备份的文件后,在备份存储器中会生成文件的存储位置的信息。在一个示例中,文件的存储位置的信息包括但不限于文件在备份存储器中的位置信息、类型信息、存储单元id以及偏移信息。当备份存储器106生成了文件的存储位置的信息后,备份存储器106将这些信息发送到文件备份系统112,在文件备份系统112内保存这些信息,这些信息的存储地址即为上面通过文件类型指示信息和索引结点值在缓存内确定的地址。因此,通过在缓存中保存文件类型指示信息和索引结点值形成的数据以及与它们相对应的文件的存储位置的信息,使得在查找备份的文件时,利用在缓存中保存的这种映射关系,可以很快的找到目标备份数据以实现数据恢复。下面将参考图3描述数据的备份过程。数据的恢复过程将参考图4进行详细描述。

图3示出了根据本公开的实施例的用于文件备份的方法300的流程图。在图3公开的文件备份的方法中,在框302处,接收包括待备份的文件和描述文件的属性的元数据。在图1中,数据存储设备104获得数据并将其保存后,为了数据的安全,数据存储设备104向文件备份系统102发送数据。在一个示例中,数据存储设备104通过ndmp协议向文件备份系统发送数据。基于该协议发送的数据中包括文件以及文件的元数据。在一个示例中,文件的元数据至少包括文件类型指示信息以及索引结点值。该索引结点值为指示文件的元数据在数据存储设备104中的存储位置的指示信息。

在框304处,将元数据存储到缓存中。在图1中文件备份系统102中设置了缓存112。文件备份系统102在接收到元数据时,将元数据存在缓存中。由于缓存的存取速度快于常规的存储设备,因此,通过缓存处理元数据会提高数据处理的速度。

在框306处,将文件存储到用于数据备份的存储设备。在图1中,数据存储设备104中的数据在文件备份系统102的控制下将数据备份到备份存储器106。当待备份的数据存储到备份存储器106上时,会生成存储的文件的存储位置的相关信息。这些信息包括但不限于文件在备份存储器中存储的位置信息、类型信息、存储单元id以及偏移信息。

在框308处,从存储设备接收指示文件在所述存储设备中的存储位置的信息。在图1中,备份存储器106会将上面描述的文件在存储位置信息发送到文件备份系统102。

在框310处,将信息以如下地址存储在所述缓存中,地址基于所述元数据而确定。在图1中,文件备份系统102在接收到上述信息后会将该存储位置的信息也保存在缓存中。该存储位置的保存地址是基于元数据中的文件类型指示信息和元数据在存储设备104中的存储位置的指示信息来确定的。该地址确定的方式在图2中已经进行了详细描述。

图4图示了根据本公开的实施例的用于文件备份的方法400的流程图。参考图2和图3,文件备份系统在备份完数据后会在其缓存中存储备份存储器106保存的文件的地址信息。因此,通过利用文件备份系统102的缓存可以很快的查找到待恢复的备份数据。在框402处,接收用于文件恢复的数据。如图1中,如果数据存储设备104需要恢复部分数据,需要向文件备份系统102发送请求以恢复备份的数据。在一个示例中,该请求至少包括指示文件的元数据在数据存储设备104中的存储位置的指示信息,该指示信息可以以索引结点值的形式表示。

在框404处,基于接收的数据在缓存中查找描述文件的属性的元数据。在图2中,在对文件进行备份时,会将元数据存储在缓存中,在一个示例中,元数据至少包括文件类型的指示信息和索引结点值。元数据可以以一定的数据结构存储于缓存上。因此,当接收到索引结点值时,便可以确定与该索引结点值对应的元数据。在另一示例中,基于索引结点值便可以确定由该索引结点值和文件类型指示信息形成的数据。

在框406处,基于元数据确定缓存中针对存储位置的信息的存储地址,所述存储位置的信息是所述文件在存储设备中的存储位置的信息。结合图2的描述,基于该数据,可以通过文件类型指示信息确定第一地址,即文件类型树的根结点,然后基于索引结点值查找到对应的叶子结点,即第二地址。结合图2中的描述,在元数据确定的地址存储了文件在备份存储器106中的存储位置的信息.

在框408处,基于存储位置从存储设备中获得文件。由于获得了文件在备份存储器106中的地址,因此,基于该地址很容易快速的查找到待恢复文件。在框410处,发送所述文件以实现文件恢复。

图5图示了根据本公开的实施例的用于文件备份的装置500的框图。装置500可以包括第一接收模块510,被配置为接收包括待备份的文件和描述文件的属性的元数据。装置500还可以包括元数据存储模块520,被配置为将元数据存储到缓存中。装置500还可以包括文件存储模块530,被配置为将文件存储到用于数据备份的存储设备。500还可以包括第二接模块540,被配置为从存储设备接收指示文件在存储设备中的存储位置的信息。此外,装置500还可以包括信息存储模块550,被配置为将信息以如下地址存储在所述缓存中,该地址基于所述元数据而确定。

图6图示了根据本公开的实施例的用于文件备份的装置600的框图。装置600可以包括第三接收模块610,被配置为接收用于文件恢复的数据。装置600还可以包括元数据确定模块620,被配置为基于接收的所述数据在缓存中确定描述所述文件的属性的元数据。装置600还可以包括信息确定模块630,被配置为基于所述元数据确定所述缓存中指示所述文件在存储设备中的存储位置的信息。600还可以包括文件模块640,被配置为基于所述存储位置从所述存储设备中获得所述文件。此外,装置500还可以包括发送模块650,被配置为发送所述文件以实现文件恢复。

出于清楚的目的,在图5和/或图6中没有示出装置500和/或600的某些可选模块。然而,应当理解,上文参考图1-4所描述的各个特征同样适用于装置500和/或600。而且,装置500和/或600的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置500和/或600可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置500和/或600可以部分或者全部基于硬件来实现,例如被实现为集成电路(ic)、专用集成电路(asic)、片上系统(soc)、现场可编程门阵列(fpga)等。本公开的范围在此方面不受限制。

图7示出了可以用来实施本公开内容的实施例的示例设备700的示意性框图。例如,如图1所示的102、104、106中的任一项可以由设备700来实施。如图所示,设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序指令,来执行各种适当的动作和处理。在ram703中,还可存储设备700操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法300和400,可由处理单元701执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到ram703并由cpu701执行时,可以执行上文描述的方法300或400的一个或多个动作。

本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1