用于在备份操作期间对关键数据对象存储进行优先级排序的方法和系统与流程

文档序号:22758395发布日期:2020-10-31 09:56阅读:136来源:国知局

背景技术
::现有的数据复原解决方案缺乏在复原操作期间确定数据恢复优先级的机制。也就是说,如果在复原操作完成期间或之前发生灾难,那么关键数据当在备份存储阵列中排队用于恢复时可丢失。附图说明图1示出根据本发明的一个或多个实施例的系统。图2a示出根据本发明的一个或多个实施例的备份存储系统。图2b示出根据本发明的一个或多个实施例的备份存储系统。图3示出根据本发明的一个或多个实施例的目标主机。图4示出描述根据本发明的一个或多个实施例的用于在复原操作期间对关键数据分组或数据块恢复进行优先级排序的方法的流程图。图5示出描述根据本发明的一个或多个实施例的用于在复原操作期间对关键数据文件恢复进行优先级排序的方法的流程图。图6示出根据本发明的一个或多个实施例的计算系统。具体实施方式现在将参考附图详细描述本发明的具体实施例。在本发明的实施例的以下详细描述中,阐述许多具体细节以便提供对本发明的更透彻理解。然而,对于本领域的普通技术人员而言将显而易见的是,本发明可在没有这些具体细节的情况下实践。在其它情况下,不再详细描述众所周知的特征,以避免不必要地使描述变复杂。在图1-6的以下描述中,在本发明的各种实施例中,关于一个图描述的任一组件可等效于关于任一其它图描述的一个或多个相似命名的组件。为简洁起见,将不关于每一图来重复这些组件的描述。因此,每一图的组件的每个实施例以引用的方式并入,并且假定为任选地存在于具有一个或多个相似命名的组件的每一其它图内。另外,根据本发明的各种实施例,对一个图的组件的任何描述应解释为任选实施例,其可除了关于任一其它图中的对应的相似命名的组件描述的实施例外再实施、与所述实施例一起实施或代替所述实施例加以实施。在整个申请中,序数(例如第一、第二、第三等)可用作元件(即,申请中的任何名词)的形容词。除非明确地公开,如通过使用术语“之前”、“之后”、“单一”和其它这类术语,否则序数的使用不一定暗示或创建元件的任何特定排序,也不将任何元件限制为仅单个元件。实际上,序数的使用是为了区分元件。借助于实例,第一元件不同于第二元件,并且第一元件可涵盖多于一个元件并且在元件的排序中接续(或先于)第二元件。通常,本发明的实施例涉及用于在复原操作期间对关键数据对象恢复进行优先级排序的方法和系统。具体地说,本发明的一个或多个实施例需要根据基于最接近关键的顺序次序对数据对象进行重新排序、等待从备份存储中读取并且因此在一个或多个数据对象队列中排队。可通过在任何给定数据对象队列中排队的相邻数据对象对之间计算出的基于修正权重的欧几里得(euclidean)距离来导出基于最接近关键的顺序次序。另外,计算出的基于修正权重的欧几里得距离结合与相邻数据对象对相关联的数据关键性因子。通过以基于最接近关键的顺序次序对数据对象进行重新排序,可首先恢复关键数据对象,从而避免在复原操作期间发生灾难时可能的关键数据丢失。图1示出根据本发明的一个或多个实施例的系统。系统(100)可包括可操作地连接到一个或多个目标主机(104a-104n)的备份存储系统(bss)(102)。以下描述这些组件中的每一个。在本发明的一个实施例中,bss(102)可通过网络(未示出)(例如局域网(lan)、如因特网的广域网(wan)、移动网络等)直接或间接连接到一个或多个目标主机(104a-104n)。可使用有线和/或无线连接的任何组合来实施网络。在其中bss(102)和一个或多个目标主机(104a-104n)间接连接的实施例中,可存在可便于通信的其它网络组件或系统(例如,交换机、路由器、网关等)。另外,bss(102)和一个或多个目标主机(104a-104n)可使用有线和/或无线通信协议的任何组合彼此通信。在本发明的一个实施例中,bss(102)可表示数据备份、存档和/或容灾存储系统。可使用一个或多个服务器(未示出)来实施bss(102)。每个服务器可为物理服务器(即,其可位于在数据中心中)或虚拟服务器(即,其可位于在云计算环境中)。另外,在本发明的一个实施例中,可使用与图6中所示的示例性计算系统类似的一个或多个计算系统来实施bss(102)。下面参考图2a和2b另外详细描述bss(102)。在本发明的一个实施例中,每个目标主机(104a-104n)可表示可在其上执行一个或多个用户程序(未示出)的任何物理计算系统。举例来说,这些用户程序可实施大规模和复杂的数据处理;并且可并发为多个用户服务。另外,每个目标主机(104a-104n)可提供和管理各种计算资源(例如,计算机处理器、存储器、永久性和非永久性存储装置、网络带宽等)的分配以执行可在其上实例化的各种过程(或任务)。普通技术人员将理解,在不脱离本发明的范围的情况下,每个目标主机(104a-104n)可执行其它功能。目标主机(104a-104n)的实例可包括但不限于桌上型计算机、平板计算机、服务器、大型主机、智能手机或与图6中所示的示例性计算系统类似的任何其它计算系统。目标主机(104a-104n)在下面参考图3另外详细描述。虽然图1示出组件的配置,但在不脱离本发明的范围的情况下,可使用其它系统配置。图2a示出根据本发明的一个或多个实施例的备份存储系统(bss)。本文描述的bss(200)可以可操作地与下面参考图3描述的目标主机(未示出)连接。另外,bss(200)可表示数据备份、存档和/或容灾存储系统,其包括备份存储阵列(202)、复原代理(206)、优先级权重评估器(208)、欧几里得距离计算器(212)、对象排序器(214)和发送缓冲器(216)。以下描述这些组件中的每一个。在本发明的一个实施例中,备份存储阵列(202)可指代一个或多个物理存储装置(未示出)的集合,在其上可合并各种形式的信息-例如备份用户程序数据(204)。每个物理存储装置可涵盖非暂时性计算机可读存储介质,在其上可全部或部分并且暂时或永久性地存储信息。借助于实例,每个物理存储装置可表示硬盘驱动器(hdd)、固态驱动器(ssd)、磁带存储系统或网络附加存储(nas)。另外,在本发明的一个实施例中,备份存储阵列(202)可使用永久性(即,非易失性)存储装置来实施。永久性存储装置的实例可包括但不限于光学存储装置、磁性存储装置、nand快闪存储器、nor快闪存储器、磁性随机存取存储器(m-ram)、自旋力矩磁性ram(st-mram)、相变存储器(pcm),或定义为非易失性存储类存储器(scm)的任何其它存储装置。在本发明的一个实施例中,可合并在备份存储阵列(202)上的备份用户程序数据(204)可指代与可在目标主机(参见例如图3)上执行的任何给定用户程序(未示出)相关联的数据的任何粒度的拷贝。备份用户程序数据(204)可需要,例如,应用程序数据、用户数据、配置数据、元数据或一个或多个用户程序可与其进行交互的任何其它形式的数据。在本发明的一个实施例中,复原代理(206)可指代可在bss(200)的底层硬件上执行的计算机程序。具体地说,复原代理(206)可指代被设计和配置成在目标主机处的灾难之后实施数据复原操作的计算机程序。因此,复原代理(206)可包括以下功能:基于复原代理(206)的配置,从备份存储阵列(202)中识别和检索用户程序数据(204);跨一个或多个数据对象(例如,一个或多个数据分组或数据块)(218)封装检索的用户程序数据(204);并且将一个或多个数据对象(218)在缓冲器(未示出)内排队。普通技术人员将理解,在不脱离本发明的范围的情况下,复原代理(206)可执行其它功能。在本发明的一个实施例中,优先级权重评估器(208)可指代可在bss(200)的底层硬件上执行的计算机程序。具体地说,优先级权重评估器(208)可指代被设计和配置成识别由复原代理(206)排队的任何数据对象(例如,数据分组或数据块)(218)的优先级权重的计算机程序。因此,优先级权重评估器(208)可包括以下功能:检查附加到任何给定数据对象(218)的标头信息,以提取嵌入其中的数据关键性因子;基于提取的数据关键性因子来识别给定数据对象(218)的优先级权重;并且将给定数据对象(218)的识别的优先级权重提供给欧几里得距离计算器(212)。数据关键性因子可指代将路由操作优先级分配给给定用户程序数据(204)数据类型的数字或类别分类。借助于实例,用户程序数据(204)的数据类型可包括但不限于数据库记录数据类型、文本数据类型、图像数据类型、虚拟机配置数据类型等。此外,可从任何系统或用户定义的优先级等级中定义数据关键性因子。数据关键性因子的实例可包括但不限于任何自然数(例如1、2、3、...)、任何类别标签(例如“低”、“中”、“高”、...),以及任何其它可扩展的分类方案。此外,任何给定数据对象(218)的优先级权重可指代分配给给定数据对象(218)的数值(例如,整数、浮点数、分数等),所述数值基于与给定数据对象(218)相关联的数据关键性因子来反映给定数据对象(218)的相对重要性。普通技术人员将理解,在不脱离本发明的范围的情况下,优先级权重评估器(208)可执行其它功能。在本发明的一个实施例中,从属对象评估器(210)可指代可在bss(200)的底层硬件上执行的计算机程序。具体地说,从属对象评估器(210)可指代被设计和配置成生成流从属性信息(sdi)(如果存在的话)的计算机程序。sdi可指代使两个或更多个数据对象(218)彼此相关的信息。这些相关数据对象(218)可与唯一数据对象流有关,其可通过检查附加到数据对象(218)的标头信息的至少一部分来识别。因此,从属对象评估器(210)可包括以下功能:检查附加到由复原代理(206)排队的数据对象(218)的标头信息(例如,序列号信息),以确定一个或多个唯一数据对象流是否在排队数据对象(218)中;如果至少一个唯一数据对象流被识别,那么生成可识别属于每个识别的唯一数据对象流的两个或更多个数据对象(218)的sdi;并且将生成的sdi提供给欧几里得距离计算器(212)。普通技术人员将理解,在不脱离本发明的范围的情况下,从属对象评估器(210)可执行其它功能。在本发明的一个实施例中,欧几里得距离计算器(212)可指代可在bss(200)的底层硬件上执行的计算机程序。具体地说,欧几里得距离计算器(212)可指代被设计和配置成确定由复原代理(206)排队的任何一对相邻数据对象(218)之间的基于修正权重的欧几里得距离的计算机程序。通常,欧几里得距离是指欧几里得空间(例如,n维笛卡尔坐标空间)中两个数据点之间的直线距离。因此,前述基于修正权重的欧几里得距离可指代给定数据点对之间的直线距离,其中给定数据点对的每个数据点的相对显著性通过它们各自的优先级权重(以上所述)的积分来强调和考虑,如以下数学公式所表达:其中edw为两个数据点p={p1,p2,p3,…,pn}和q={q1,q2,q3,…,qn}之间的基于修正权重的欧几里得距离;其中wp为与数据点p相关联的优先级权重;其中wq为与数据点q相关联的优先级权重;并且其中n为数据点位于的欧几里得空间中的维数。因此,在本发明的一个实施例中,欧几里得距离计算器(212)可包括以下功能:从优先级权重评估器(208)接收与由复原代理(206)排队的任何数据对象(212)相关联的优先级权重;从从属对象评估器(210)接收流从属性信息(sdi)(如果存在的话)(以上所述);将排队相邻数据对象(218)对映射到n维欧几里得空间上;考虑到接收的优先级权重和sdi(如果存在的话),计算已映射到n维欧几里得空间上的排队相邻数据对象(218)对之间的基于修正权重的欧几里得距离;并且将计算出的基于修正权重的欧几里得距离提供给对象排序器(214)。当在基于修正权重的欧几里得距离的计算中考虑sdi时,欧几里得距离计算器(212)可仅考虑所有基于修正权重的欧几里得距离中的最小的基于修正权重的欧几里得距离,其涉及与sdi相关联的识别的从属数据对象(218)中的任一个。普通技术人员将理解,在不脱离本发明的范围的情况下,欧几里得距离计算器(212)可执行其它功能。在本发明的一个实施例中,对象排序器(214)可指代可在bss(200)的底层硬件上执行的计算机程序。具体地说,对象排序器(214)可指代被设计和配置成对由复原代理(206)排队的数据对象(218)进行排序,使得每个对象队列(220)中最接近和最关键的数据对象(218)被放置在对象队列(220)的前面的计算机程序。因此,对象排序器(214)可包括以下功能:从欧几里得距离计算器(212)接收排队相邻数据对象(218)对之间的基于修正权重的欧几里得距离;至少基于接收的基于修正权重的欧几里得距离,重新排列每个对象队列(220)中的排队数据对象(218),以实现基于最接近关键的排队方案;并且将重新排列的排队数据对象(218)提供给发送缓冲器(216)。排队方案可指代其中可排列给定对象队列(220)中的数据对象(218)的次序。前述基于最接近关键的排队方案随后排列给定对象队列(220)中的数据对象(218),使得以排序次序,最接近和最关键的数据对象(218)占据最前面的序列位置(222),而替代地最远和最不关键的数据对象(218)占据最后面的序列位置(222)。普通技术人员将理解,在不脱离本发明的范围的情况下,分组排序器(214)可执行其它功能。在本发明的一个实施例中,发送缓冲器(216)可指代物理存储器存储装置(例如,随机存取存储器(ram)),其中数据对象(218)可在等待发送到目标主机时被暂时排队。另外,发送缓冲器(216)可包括以并发(或并行)方式发送一个或多个数据对象流的功能。数据对象流可指代属于同一或公共复原作业的数据对象(218)的集合。反过来,复原作业可指代由信息集定义的复原操作,所述信息集例如为正在复原的数据(例如,用户程序数据(204))、复原的目标位置(例如,目标主机)和正在执行复原的时间。在不脱离本发明的范围的情况下,额外或替代信息可定义复原作业。图2b示出根据本发明的一个或多个实施例的备份存储系统(bss)。本文描述的bss(240)可以可操作地与下面参考图3描述的目标主机(未示出)连接。另外,bss(240)可表示数据备份、存档和/或容灾存储系统,其包括备份存储阵列(242)、复原代理(246)、优先级分配对象(pao)(248)、pao解释器(250)、欧几里得距离计算器(252)、文件排序器(254)和发送缓冲器(256)。以下描述这些组件中的每一个。在本发明的一个实施例中,备份存储阵列(242)可指代一个或多个物理存储装置(未示出)的集合,在其上可合并各种形式的信息-例如备份用户程序数据(244)。每个物理存储装置可涵盖非暂时性计算机可读存储介质,在其上可全部或部分并且暂时或永久性地存储信息。借助于实例,每个物理存储装置可表示硬盘驱动器(hdd)、固态驱动器(ssd)、磁带存储系统或网络附加存储(nas)。另外,在本发明的一个实施例中,备份存储阵列(242)可使用永久性(即,非易失性)存储装置来实施。永久性存储装置的实例可包括但不限于光学存储装置、磁性存储装置、nand快闪存储器、nor快闪存储器、磁性随机存取存储器(m-ram)、自旋力矩磁性ram(st-mram)、相变存储器(pcm),或定义为非易失性存储类存储器(scm)的任何其它存储装置。在本发明的一个实施例中,可合并在备份存储阵列(242)上的备份用户程序数据(244)可指代与可在目标主机(参见例如图3)上执行的任何给定用户程序(未示出)相关联的数据的任何粒度的拷贝。备份用户程序数据(244)可需要,例如,应用程序数据、用户数据、配置数据、元数据或一个或多个用户程序可与其进行交互的任何其它形式的数据。在本发明的一个实施例中,复原代理(246)可指代可在bss(240)的底层硬件上执行的计算机程序。具体地说,复原代理(246)可指代被设计和配置成在目标主机处的灾难之后实施数据复原操作的计算机程序。因此,复原代理(246)可包括以下功能:基于复原代理(246)的配置,从备份存储阵列(242)中以数据文件(258)的形式识别和检索用户程序数据(244);并且将一个或多个数据文件(258)在缓冲器(未示出)内排队。普通技术人员将理解,在不脱离本发明的范围的情况下,复原代理(246)可执行其它功能。在本发明的一个实施例中,pao(248)可指代指定使文件类型和/或文件名与数据关键性因子相关联的用户定义的映射的数据结构或数据对象(例如,文件)。文件类型可指代描述给定数据文件(258)的元数据,并且更具体地,可指代指示其中给定数据文件(258)中的用户程序数据已经被编码用于存储的文件格式的元数据。文件格式(或文件类型)的实例可包括但不限于用于美国信息交换标准码(americanstandardcodeforinformationinterchange)(ascii)或unicode纯文本数据文件的txt文件格式;用于移动图片专家组(movingpictureexpertsgroup)(mpeg)-4第14部分多媒体数据文件的mp4文件格式;用于adobe可移植文档格式(portabledocumentformatted)数据文件的pdf文件格式;用于microsoftword格式数据文件的doc;以及可用于编码数据用于存储的任何其它现有文件格式。另一方面,文件名可指代指示识别和区分给定数据文件(258)与其它数据文件(258)的唯一名称的数据文件(258)元数据。文件名可表达为涵盖字符(例如,字母、数字、某些符号等)的任何组合的任意长度的字符串。此外,数据关键性因子可指代将路由操作优先级分配给给定数据文件(258)文件类型和/或文件名的数字或类别分类。可从任何系统或用户定义的优先级等级中定义数据关键性因子。数据关键性因子的实例可包括但不限于任何自然数(例如1、2、3、...)、任何类别标签(例如“低”、“中”、“高”、...),以及任何其它可扩展的分类方案。在本发明的一个实施例中,pao解释器(250)可指代可在bss(240)的底层硬件上执行的计算机程序。具体地,pao解释器(250)可指代被设计和配置成解释pao(248)并且向由复原代理(246)排队的数据文件(258)分配优先级权重的计算机程序。因此,pao解释器(250)可包括以下功能:检查描述任何给定数据文件(258)的元数据,以识别与给定数据文件(258)相关联的文件类型和文件名;使用与给定数据文件(258)相关联的识别的文件类型和/或文件名对pao(248)执行查找;基于查找,获得由bss(240)的用户分配给给定数据文件(258)的数据关键性因子;识别与数据关键性因子相关联的优先级权重,从而将优先级权重分配给给定数据文件(258)或使优先级权重与给定数据文件(258)相关联;并且将给定数据文件(258)的优先级权重提供给欧几里得距离计算器(252)。数据文件(258)可指代表示数据的连续容器的数据(例如,用户程序数据(244))的单元。普通技术人员将理解,在不脱离本发明的范围的情况下,pao解释器(250)可执行其它功能。在本发明的一个实施例中,pao解释器(250)可借助于规定的用户定义的映射来识别与给定数据关键性因子相关联的优先级权重。因此,这些映射可使给定数据关键性因子与给定优先级权重相关联。数据关键性因子可指代将写操作优先级分配给给定用户程序数据(244)文件类型和/或文件名的数字或类别分类。可从任何系统或用户定义的优先级等级中定义数据关键性因子。数据关键性因子的实例可包括但不限于任何自然数(例如1、2、3、...)、任何类别标签(例如“低”、“中”、“高”、...),以及任何其它可扩展的分类方案。此外,任何给定数据文件(258)的优先级权重可指代分配给给定数据文件(258)的数值(例如,整数、浮点数、分数等),所述数值基于与给定数据文件(258)相关联的数据关键性因子来反映给定数据文件(258)的相对重要性。在本发明的一个实施例中,欧几里得距离计算器(252)可指代可在bss(240)的底层硬件上执行的计算机程序。具体地说,欧几里得距离计算器(252)可指代被设计和配置成确定由复原代理(246)排队并且因此等待发送的任何一对相邻数据文件(258)之间的基于修正权重的欧几里得距离的计算机程序。通常,欧几里得距离是指欧几里得空间(例如,n维笛卡尔坐标空间)中两个数据点之间的直线距离。因此,前述基于修正权重的欧几里得距离可指代给定数据点对之间的直线距离,其中给定数据点对的每个数据点的相对显著性通过它们各自的优先级权重(以上所述)的积分来强调和考虑,如以下数学公式所表达:其中edw为两个数据点p={p1,p2,p3,…,pn}和q={q1,q2,q3,…,qn}之间的基于修正权重的欧几里得距离;其中wp为与数据点p相关联的优先级权重;其中wq为与数据点q相关联的优先级权重;并且其中n为数据点位于的欧几里得空间中的维数。因此,在本发明的一个实施例中,欧几里得距离计算器(252)可包括以下功能:从pao解释器(250)接收与由复原代理(246)排队的任何数据文件(258)相关联的优先级权重;将排队相邻数据文件(258)对映射到n维欧几里得空间上;考虑到接收的优先级权重,计算已映射到n维欧几里得空间的排队相邻数据文件(258)对之间的基于修正权重的欧几里得距离;并且将计算出的基于修正权重的欧几里得距离提供给文件排序器(254)。普通技术人员将理解,在不脱离本发明的范围的情况下,欧几里得距离计算器(252)可执行其它功能。在本发明的一个实施例中,文件排序器(254)可指代可在bss(240)的底层硬件上执行的计算机程序。具体地说,文件排序器(254)可指代被设计和配置成对由复原代理(246)排队的数据文件(258)进行排序,使得每个文件队列(260)中最接近和最关键的数据文件(258)被放置在文件队列(260)的前面的计算机程序。因此,文件排序器(254)可包括以下功能:从欧几里得距离计算器(252)接收排队相邻数据文件(258)对之间的基于修正权重的欧几里得距离;至少基于接收的基于修正权重的欧几里得距离,重新排列每个文件队列(260)中的排队数据文件(258),以实现基于最接近关键的排队方案;并且将重新排列的排队数据文件(258)提供给发送缓冲器(256)。排队方案可指代其中可排列给定文件队列(260)中的数据文件(258)的次序。前述基于最接近关键的排队方案随后排列给定文件队列(260)中的数据文件(258),使得以排序次序,最接近和最关键的数据文件(258)占据最前面的序列位置(262),而替代地最远和最不关键的数据文件(268)占据最后面的序列位置(262)。普通技术人员将理解,在不脱离本发明的范围的情况下,文件排序器(254)可执行其它功能。在本发明的一个实施例中,发送缓冲器(256)可指代物理存储器存储装置(例如,随机存取存储器(ram)),其中数据文件(258)可在等待发送到目标主机时被暂时排队。另外,发送缓冲器(256)可包括以并发(或并行)方式发送一个或多个数据文件流的功能。数据文件流可指代属于同一或公共复原作业的数据文件(258)的集合。反过来,复原作业可指代由信息集定义的复原操作,所述信息集例如为正在复原的数据(例如,用户程序数据(244))、复原的目标位置(例如,目标主机)和正在执行复原的时间。在不脱离本发明的范围的情况下,额外或替代信息可定义复原作业。图3示出根据本发明的一个或多个实施例的目标主机。目标主机(300)可表示包括主机接口(302)、接收缓冲器(304)、复原代理(306)、一个或多个用户程序(308a-308n)以及主机存储阵列(310)的物理计算系统。以下描述这些组件中的每一个。在本发明的一个实施例中,主机接口(302)可指代计算机硬件和/或软件,用户可通过所述计算机硬件和/或软件与目标主机(300)的各种组件(例如,一个或多个用户程序(308a-308n)、复原代理(306)等)进行交互。因此,主机接口(302)可包括以下功能:将来自用户的命令、指令和/或其它输入信息中继到一个或多个目标主机(300)组件;并且相反,将来自一个或多个目标主机(300)组件的结果和/或其它输出信息呈现给用户。普通技术人员将理解,在不脱离本发明的范围的情况下,主机接口(302)可执行其它功能。借助于实例,主机接口(302)可以命令行接口(cli)、图形用户接口(gui)或用户可通过其与目标主机(300)进行交互的任何其它接口设计的形式来实施。在本发明的一个实施例中,接收缓冲器(304)可指代物理存储器存储装置(例如,随机存取存储器(ram)),其中数据对象(未示出)(例如,数据分组、数据块或数据文件)可在借助于对主机存储阵列(310)的写操作等待复原时被暂时排队。另外,接收缓冲器(304)可包括向复原代理(306)提供任何排队(或缓冲)数据对象的功能。另外,接收缓冲器(304)可包括以并发(或并行)方式接收一个或多个数据对象流的另外功能。数据对象流可指代属于同一或公共复原作业的数据对象的集合。反过来,复原作业可指代由信息集定义的复原操作,所述信息集例如为正在复原的数据(例如,用户程序数据(312))、复原的目标位置(例如,目标主机(300))和正在执行复原的时间。在不脱离本发明的范围的情况下,额外或替代信息可定义备份作业。在本发明的一个实施例中,复原代理(308)可指代可在目标主机(300)的底层硬件上执行的计算机程序。具体地说,复原代理(308)可指代被设计和配置成在灾难之后实施数据复原操作的计算机程序。因此,复原代理(308)可包括以下功能:从主机接口(302)接收命令、指令和/或其它输入信息;从接收缓冲器(306)获得排队数据对象;并且将获得的数据对象写入主机存储阵列(310),从而复原由获得的数据对象封装的任何用户程序数据(312)。普通技术人员将理解,在不脱离本发明的范围的情况下,备份代理(208)可执行其它功能。在本发明的一个实施例中,用户程序(308a-308n)可指代可在目标主机(300)的底层硬件上执行的计算机程序。具体地说,用户程序(308a-308n)可指代被设计和配置成执行旨在帮助目标主机(300)的用户的一个或多个功能、任务和/或活动的计算机程序。因此,用户程序(308a-308n)可包括以下功能:从主机接口(302)接收命令、指令和/或其它输入信息;响应于接收上述命令、指令和/或其它输入信息,执行用户程序(308a-308n)为其设计和配置的一个或多个功能、任务和/或活动;在执行功能、任务和/或活动之前、同时和/或之后,从/向主机存储阵列(310)读取和/或写入(即存储)相应的用户程序数据(312);从执行功能、任务和/或活动中获得结果和/或其它输出信息;并且将上述结果和/或其它输出信息提供给主机接口(302)。普通技术人员将理解,在不脱离本发明的范围的情况下,用户程序(308a-308n)可执行其它功能。用户程序(308a-308n)的实例可包括但不限于文字处理器、电子邮件客户端、数据库客户端、虚拟机、web浏览器、媒体播放器、文件查看器、图像编辑器、模拟器等。在本发明的一个实施例中,主机存储阵列(310)可指代一个或多个物理存储装置(未示出)的集合,在其上可合并各种形式的信息-例如用户程序数据(312)。每个物理存储装置可涵盖非暂时性计算机可读存储介质,在其上可全部或部分并且暂时或永久性地存储信息。借助于实例,每个物理存储装置可表示硬盘驱动器(hdd)、固态驱动器(ssd)、磁带存储系统或网络附加存储(nas)。另外,在本发明的一个实施例中,主机存储阵列(212)可使用永久性(即,非易失性)存储装置来实施。永久性存储装置的实例可包括但不限于光学存储装置、磁性存储装置、nand快闪存储器、nor快闪存储器、磁性随机存取存储器(m-ram)、自旋力矩磁性ram(st-mram)、相变存储器(pcm),或定义为非易失性存储类存储器(scm)的任何其它存储装置。在本发明的一个实施例中,可合并在主机存储阵列(310)上的用户程序数据(312)可指代与任何给定用户程序(308a-308n)相关联的数据的任何粒度。用户程序数据(312)可需要,例如,应用程序数据、用户数据、配置数据、元数据或一个或多个用户程序(308a-308n)可与其进行交互的任何其它形式的数据。图4示出描述根据本发明的一个或多个实施例的用于在复原操作期间对关键数据分组或数据块恢复进行优先级排序的方法的流程图。下面概述的各个步骤可由图2a中描绘的备份存储系统(bss)执行。另外,虽然依序呈现和描述流程图中的各个步骤,但普通技术人员将理解,步骤中的一些或全部可以不同次序执行、可组合或省略,并且可并行地执行一些或全部步骤。转向图4,在步骤400中,识别数据对象队列集。在本发明的一个实施例中,每个识别的数据对象队列可表示先进先出(fifo)缓冲器。另外,每个识别的数据对象队列可包括数据对象(例如,数据分组或数据块)的序列,其可等待发送到目标主机(参见例如图3)。每个识别的数据对象队列中的数据对象序列的基数(即,数据对象的数目)在整个过程中可相同或不同。而且,每个数据对象序列可根据基于到达的排队方案在相应的数据对象队列中缓冲。排队方案可指代其中可排列给定数据对象队列中的数据对象的次序。前述基于到达的排队方案随后以其中在bss上执行的复原代理已选择复原的数据对象的次序排列给定数据对象队列中的数据对象。在步骤402中,对于在每个数据对象队列(在步骤400中识别)中排队的每个数据对象,至少获得数据对象的数据关键性因子。即,在本发明的一个实施例中,可检查每个数据对象的标头信息以至少提取数据对象的数据关键性因子。数据关键性因子可指代将路由操作优先级分配给与给定数据对象内的用户程序数据相关联的数据类型的数字或类别分类。可从任何系统或用户定义的优先级等级中定义数据关键性因子。数据关键性因子的实例可包括但不限于任何自然数(例如1、2、3、...)、任何类别标签(例如“低”、“中”、“高”、...),以及任何其它可扩展的分类方案。在本发明的另一个实施例中,流从属性信息(sdi)也可从与每个数据对象有关的标头信息的检查中导出。具体地说,例如数据对象序列号的信息可被提取并且用于导出sdi。可使用的标头信息的其它非限制性实例包括父对象信息、父流信息、i/o端口特性和基地址指针。通常,标头信息可对应于对象之间公共的任何信息。在步骤404中,对于在每个数据对象队列(在步骤400中识别)中排队的每个数据对象,识别数据对象的优先级权重。在本发明的一个实施例中,任何给定数据对象的优先级权重可指代可分配给给定数据对象的数值(例如,整数、浮点数、分数等),所述数值可基于与给定数据对象相关联的数据关键性因子(在步骤402中获得)来反映给定数据对象的相对重要性。此外,优先级权重的识别可需要访问和解释用户定义的映射,这可使数据关键性因子与优先级权重相关联。在步骤406中,使用sdi(在步骤402中获得)识别零个或多个唯一数据对象流。在本发明的一个实施例中,sdi可指代将两个或更多个数据对象彼此关联的信息。这些相关数据对象可与唯一数据对象流有关。数据对象流(例如,数据分组流或数据块流)可指代属于同一或公共复原作业的数据对象的集合。反过来,复原作业可指代由信息集定义的复原操作,所述信息集例如为正在复原的数据(例如,用户程序数据)、复原的目标位置(例如,目标主机)和正在执行复原的时间。在不脱离本发明的范围的情况下,额外或替代信息可定义备份作业。在步骤408中,对于在每个数据对象队列(在步骤400中识别)中排队的每个数据对象,将数据对象映射到预定义的欧几里得空间(例如,二维笛卡尔坐标空间)。更具体地,在本发明的一个实施例中,表示与给定数据对象相关联的接收的序列位置和给定数据对象队列的数值(例如自然数)可分别映射到表示欧几里得空间中的给定数据对象的数据点的横坐标(即,x坐标)和纵坐标(即,y坐标)。给定数据对象的接收的序列位置可指代沿在给定数据对象队列内等待的数据对象(包括给定数据对象)的序列,给定数据对象相对于给定数据对象队列的前面所占据的位置。给定数据对象队列可指代给定数据对象可在其中等待的上述识别的数据对象队列中的一个。可基于给定数据对象队列与其它识别的数据对象队列的相对位置,为给定数据对象队列分配一个数值。在步骤410中,对于每个数据对象队列(在步骤400中识别)中的每对连续(或相邻)数据对象,计算表示一对相邻数据对象的数据点(在步骤408中映射)之间的距离。在本发明的一个实施例中,前述距离可涵盖基于修正权重的欧几里得距离。通常,欧几里得距离是指欧几里得空间(例如,n维笛卡尔坐标空间)中两个数据点之间的直线距离。因此,前述基于修正权重的欧几里得距离可指代给定数据点对之间的直线距离,其中给定数据点对的每个数据点的相对显著性通过它们各自的优先级权重(在步骤504中指示)的积分来强调和考虑,如以下数学公式所表达:其中edw为两个数据点p={p1,p2,p3,…,pn}和q={q1,q2,q3,…,qn}之间的基于修正权重的欧几里得距离;其中wp为与数据点p相关联的优先级权重;其中wq为与数据点q相关联的优先级权重;并且其中n为数据点位于的欧几里得空间中的维数。在步骤412中,对于每个数据对象流(如果在步骤406中已经识别任何数据对象流),识别定义或属于数据对象流的两个或更多个成员数据对象。此后,在本发明的一个实施例中,可聚集相邻数据对象对之间的所有距离(在步骤410中计算),其中一对数据对象中的至少一个为数据对象流的成员数据对象。另外,根据距离的这种聚集,可识别最小距离(即,距离聚集中的最小距离),并且随后将其与数据对象流相关联。识别到距离聚集中的剩余距离(即,未被识别为最小距离的一个或多个距离)可在下文描述的以下步骤中不作考虑。在步骤414中,对于每个数据对象队列(在步骤400中识别),对在数据对象队列内缓冲的接收的数据对象序列(以基于到达的排队方案(以上所述)进行排列)进行排序。在本发明的一个实施例中,可基于或使用数据对象对之间的距离(在步骤410中计算)和一个或多个唯一数据对象流(在步骤406中识别)的最小距离(如果存在的话)(在步骤412中识别)对接收的数据对象序列进行排序(或重新排列)。另外,基于排序,可将接收的数据对象序列重新排列成最接近关键的数据对象序列,这可遵循基于最接近关键的排队方案。前述基于最接近关键的排队方案可排列给定数据对象队列中的数据对象,使得以排序次序,最接近和最关键的数据对象占据给定数据对象队列的最前面的序列位置,而替代地最远和最不关键的数据对象占据给定数据对象队列的最后面的序列位置。给定数据对象队列的最前面的序列位置可指代可首先被发送(或路由)到目标主机的序列位置。因此,给定数据对象队列中一个或多个最接近和最关键的数据对象获得路由操作优先级。在步骤416中,跨所有数据对象队列(在步骤400中识别)将最接近关键的数据对象序列(在步骤414中获得)并发发送到目标主机。即,在本发明的一个实施例中,作为并行操作执行,对于每个数据对象队列,所得最接近关键的数据对象序列(以上述次序)可同时发送或路由到目标主机。图5示出描述根据本发明的一个或多个实施例的用于在复原操作期间对关键数据文件恢复进行优先级排序的方法的流程图。下面概述的各个步骤可由图2b中描绘的备份存储系统(bss)执行。另外,虽然依序呈现和描述流程图中的各个步骤,但普通技术人员将理解,步骤中的一些或全部可以不同次序执行、可组合或省略,并且可并行地执行一些或全部步骤。转向图5,在步骤500中,识别数据文件队列集。在本发明的一个实施例中,每个识别的数据文件队列可表示先进先出(fifo)缓冲器。另外,每个识别的数据文件队列可包括数据文件序列,其可等待发送(或路由)到目标主机(参见例如图3)。每个识别的数据文件队列中的数据文件序列的基数(即,数据文件的数目)在整个过程中可相同或不同。而且,每个数据文件序列可根据基于到达的排队方案在相应的数据文件队列中缓冲。排队方案可指代其中可排列给定数据文件队列中的数据文件的次序。前述基于到达的排队方案随后以其中在bss上执行的复原代理已选择复原的数据文件的次序排列给定数据文件队列中的数据文件。在步骤502中,对于在每个数据文件队列(在步骤500中识别)中排队的每个数据文件,识别与数据文件相关联的文件类型和/或文件名。在本发明的一个实施例中,文件类型可指代描述给定数据文件的元数据,并且更具体地,可指代指示其中给定数据文件中的用户程序数据已经被编码用于存储的文件格式的元数据。文件格式(或文件类型)的实例可包括但不限于用于美国信息交换标准码(americanstandardcodeforinformationinterchange)(ascii)或unicode纯文本数据文件的txt文件格式;用于移动图片专家组(movingpictureexpertsgroup)(mpeg)-4第14部分多媒体数据文件的mp4文件格式;用于adobe可移植文档格式(portabledocumentformatted)数据文件的pdf文件格式;用于microsoftword格式数据文件的doc;以及可用于编码数据用于存储的任何其它现有文件格式。另一方面,文件名可指代指示识别和区分给定数据文件与其它数据文件的唯一名称的数据文件元数据。文件名可表达为涵盖字符(例如,字母、数字、某些符号等)的任何组合的任意长度的字符串。在步骤504中,对于在每个数据文件队列(在步骤500中识别)中排队的每个数据文件,确定数据文件的数据关键性因子。即,在本发明的一个实施例中,文件类型和/或文件名(在步骤502中识别)可用于确定数据文件的数据关键性因子。更具体地,可使用识别的文件类型和/或文件名在优先级分配对象上执行查找,以获得数据关键性因子。前述优先级分配对象可指代指定使文件类型和/或文件名与数据关键性因子相关联的用户定义的映射的数据结构或数据对象(例如,文件)。此外,数据关键性因子可指代将路由操作优先级分配给给定数据文件的数字或类别分类。可从任何系统或用户定义的优先级等级中定义数据关键性因子。数据关键性因子的实例可包括但不限于任何自然数(例如1、2、3、...)、任何类别标签(例如“低”、“中”、“高”、...),以及任何其它可扩展的分类方案。在步骤506中,对于在每个数据文件队列(在步骤500中识别)中排队的每个数据文件,识别数据文件的优先级权重。在本发明的一个实施例中,任何给定数据文件的优先级权重可指代可分配给给定数据文件的数值(例如,整数、浮点数、分数等),所述数值可基于与给定数据文件相关联的数据关键性因子(在步骤504中确定)来反映给定数据文件的相对重要性。此外,优先级权重的识别可需要访问和解释用户定义的映射,这可使数据关键性因子与优先级权重相关联。在步骤508中,对于在每个数据文件队列(在步骤500中识别)中排队的每个数据文件,将数据文件映射到预定义的欧几里得空间(例如,二维笛卡尔坐标空间)。更具体地,在本发明的一个实施例中,表示与给定数据文件相关联的接收的序列位置和给定数据文件队列的数值(例如自然数)可分别映射到表示欧几里得空间中的给定数据文件的数据点的横坐标(即,x坐标)和纵坐标(即,y坐标)。给定数据文件的接收的序列位置可指代沿在给定数据文件队列内等待的数据文件(包括给定数据文件)的序列,给定数据文件相对于给定数据文件队列的前面所占据的位置。给定数据文件队列可指代给定数据文件可在其中等待的上述识别的数据文件队列中的一个。可基于给定数据文件队列与其它识别的数据文件队列的相对位置,为给定数据文件队列分配一个数值。在步骤510中,对于每个数据文件队列(在步骤500中识别)中的每对连续(或相邻)数据文件,计算表示一对相邻数据文件的数据点(在步骤708中映射)之间的距离。在本发明的一个实施例中,前述距离可涵盖基于修正权重的欧几里得距离。通常,欧几里得距离是指欧几里得空间(例如,n维笛卡尔坐标空间)中两个数据点之间的直线距离。因此,前述基于修正权重的欧几里得距离可指代给定数据点对之间的直线距离,其中给定数据点对的每个数据点的相对显著性通过它们各自的优先级权重(在步骤604中指示)的积分来强调和考虑,如以下数学公式所表达:其中edw为两个数据点p={p1,p2,p3,…,pn}和q={q1,q2,q3,…,qn}之间的基于修正权重的欧几里得距离;其中wp为与数据点p相关联的优先级权重;其中wq为与数据点q相关联的优先级权重;并且其中n为数据点位于的欧几里得空间中的维数。在步骤512中,对于每个数据文件队列(在步骤500中识别),对在数据文件队列内缓冲的接收的数据文件序列(以基于到达的排队方案(以上所述)进行排列)进行排序。在本发明的一个实施例中,可基于或使用数据文件对之间的距离(在步骤510中计算)对接收的数据文件序列进行排序(或重新排列)。另外,基于排序,可将接收的数据文件序列重新排列成最接近关键的数据文件序列,这可遵循基于最接近关键的排队方案。前述基于最接近关键的排队方案可排列给定数据文件队列中的数据文件,使得以排序次序,最接近和最关键的数据文件占据给定数据文件队列的最前面的序列位置,而替代地最远和最不关键的数据文件占据给定数据文件队列的最后面的序列位置。给定数据文件队列的最前面的序列位置可指代可首先被发送(或路由)到目标主机的序列位置。因此,给定数据文件队列中一个或多个最接近和最关键的数据文件获得路由操作优先级。在步骤514中,跨所有数据文件队列(在步骤500中识别)将最接近关键的数据文件序列(在步骤512中获得)并发发送到目标主机。即,在本发明的一个实施例中,作为并行操作执行,对于每个数据文件队列,所得最接近关键的数据文件序列(以上述次序)可同时发送或路由到目标主机。图6示出根据本发明的一个或多个实施例的计算系统。计算系统(600)可包括一个或多个计算机处理器(602)、非永久性存储装置(604)(例如,易失性存储器,如随机存取存储器(ram)、高速缓存存储器),永久性存储装置(606)(例如,硬盘、如压缩光盘(cd)驱动器或数字通用光盘(dvd)驱动器的光学驱动器、快闪存储器等)、通信接口(612)(例如,蓝牙接口、红外线接口、网络接口、光学接口等)、输入装置(610)、输出装置(608)和众多其它元件(未示出)和功能性。以下描述这些组件中的每一个。在本发明的一个实施例中,一个或多个计算机处理器(602)可为用于处理指令的集成电路。举例来说,一个或多个计算机处理器可为中央处理单元(cpu)和/或图形处理单元(gpu)的一个或多个核心或微核心。计算系统(600)还可包括一个或多个输入装置(610),如触摸屏、键盘、鼠标、麦克风、触控板、电子笔或任何其它类型的输入装置。另外,通信接口(612)可包括集成电路,所述集成电路用于将计算系统(600)连接到网络(未示出)(例如局域网(lan)、如因特网的广域网(wan)、移动网络或任何其它类型的网络)和/或连接到另一个装置,如另一个计算装置。在本发明的一个实施例中,计算系统(600)可包括一个或多个输出装置(608),如屏幕(例如液晶显示器(lcd)、等离子显示器、触摸屏、阴极射线管(crt)监测器、投影仪或其它显示装置)、打印机、外部存储装置或任何其它输出装置。输出装置中的一个或多个可与一个或多个输入装置相同或不同。一个或多个输入和输出装置可本地或远程连接到一个或多个计算机处理器(602)、非永久性存储装置(604)和永久性存储装置(606)。存在许多不同类型的计算系统,并且前述一个或多个输入和输出装置可采取其它形式。呈计算机可读程序代码形式以执行本发明的实施例的软件指令可全部或部分地暂时或永久性地存储在如cd、dvd、存储装置、磁盘、磁带、快闪存储器、物理存储器或任何其它计算机可读存储介质的非暂时性计算机可读介质上。具体地说,软件指令可对应于计算机可读程序代码,在由一个或多个处理器执行时,所述计算机可读程序代码被配置成执行本发明的一个或多个实施例。虽然已相对于有限数目的实施例描述本发明,但是具有本公开权益的本领域的技术人员将理解,可设计不脱离如本文所公开的本发明的范围的其它实施例。因此,本发明的范围应仅由随附的权利要求书来限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1