CN107111529B - 使用逻辑时间中的冗余的变化跟踪 - Google Patents

使用逻辑时间中的冗余的变化跟踪 Download PDF

Info

Publication number
CN107111529B
CN107111529B CN201580073191.7A CN201580073191A CN107111529B CN 107111529 B CN107111529 B CN 107111529B CN 201580073191 A CN201580073191 A CN 201580073191A CN 107111529 B CN107111529 B CN 107111529B
Authority
CN
China
Prior art keywords
logical time
storage system
time identifier
written
redundant data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580073191.7A
Other languages
English (en)
Other versions
CN107111529A (zh
Inventor
J.斯塔克斯
A.贝斯巴鲁亚
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107111529A publication Critical patent/CN107111529A/zh
Application granted granted Critical
Publication of CN107111529B publication Critical patent/CN107111529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

跟踪储存系统的单元部分(例如块或文件)之中的变化。逻辑时间标识符与每个单元部分相关联并且被包括在逻辑时间标识符结构内。当写入到特定写入部分时,机制更新适当的逻辑时间标识符,计算与写入部分的(多个)单元部分相关联的一个或多个逻辑时间标识符的组的冗余数据。此外,储存系统的写入部分被写入。另外,针对该写入部分的对应的冗余数据被写入到逻辑时间标识符结构。之后,对于给定的写入部分,冗余数据被验证与关联于该写入部分的一个或多个逻辑时间标识符的组一致还是不一致。如果冗余数据不一致,则当前逻辑时间标识符被分配给每个逻辑时间标识符。

Description

使用逻辑时间中的冗余的变化跟踪
背景技术
计算系统和相关联的网络已经彻底改变了人类工作、娱乐和沟通的方式,其预示着现在什么被称为“信息时代”。因此,在现代,数据管理是重要的领域。数据管理的一个方面是变化跟踪。例如,通常有帮助的是能够区分数据的什么部分在两个时间实例之间已经变化。
作为示例,当备份存储系统时,存储系统的副本被写入到备份站点。下一次备份存储系统时,只备份存储系统的变化的子集,而不是再次复制整个存储系统。因此,为了执行此增量备份,确定存储系统的哪些部分已经变化是先决条件。此外,当将存储系统恢复到特定逻辑时间时(例如如在恢复期间),变化跟踪允许恢复系统确定数据的哪些部分与该特定逻辑时间处的存储系统的状态一致。
本文中所要求保护的主题不限于解决任何缺点或只在诸如上述环境之类的环境中操作的实施例。相反,该背景技术仅被提供用于说明可以实践本文描述的一些实施例的一个示例性技术领域。
发明内容
本文所描述的至少一些实施例涉及跟踪存储系统的单元部分之中的变化。作为示例,单元部分可以是文件系统中的文件,或者基于块的存储系统中的块。对于存储系统的至少一些单元部分中的每一个,逻辑时间标识符与单元部分相关联并且包括在逻辑时间标识符结构内。
当写入到包括存储系统的一个或多个单元部分的特定写入部分时,针对写入部分内的任何变化的单元部分更新逻辑时间标识符。此外,一旦(多个)适当的逻辑时间标识符已经变化,该机制就计算与写入部分的一个或多个部分相关联的一个或多个逻辑时间标识符的组的冗余数据,比如校验和。存储系统的写入部分被写入。此外,与该写入部分相关联的逻辑时间标识符的组的对应的冗余数据被写入到逻辑时间标识符结构。
稍后,对于给定的写入部分,冗余数据被验证与关联于写入部分的一个或多个逻辑时间标识符的组一致还是不一致。如果冗余数据不一致,则当前逻辑时间标识符被分配给逻辑时间标识符中的每一个。因此,不一致的写入部分被视为最近被写入。在增量备份期间,逻辑时间标识符用于确定哪些单元部分已经变化,并且从而确定哪些单元部分需要进行备份。由于针对写入部分的不一致的冗余数据导致针对整个写入部分的逻辑时间标识符接收当前逻辑时间,这引起该写入部分的所有单元部分已被新写入到的备份系统的出现。因此,备份系统引起整个写入部分被备份,即使其单元部分中的一个或多个可能没有变化。尽管这也许可能导致在冗余数据失去一致性的罕见情况下比绝对必要更多的备份数据被传送,但当这样的情况发生时,它防止数据不一致。
本发明内容不旨在标识要求保护的主题的关键特征或必要特征,其也不旨在被用于帮助确定要求保护的主题的范围。
附图说明
为了描述可以获得上述及其它优点和特征的方式,将通过参考附图来呈现各种实施例的更具体的描述。理解这些附图仅仅描绘样本实施例并且因此不被认为是对本发明的范围的限制,所述实施例通过使用附图以附加的特征和细节来描述和解释,在附图中:
图1抽象地图示了一种计算系统,在该计算系统中可以使用本文中所描述的一些实施例;
图2图示了根据本文中所描述的原理的操作的时间线,并且包括准备阶段、操作阶段(包括写入和验证操作)以及备份阶段;
图3图示了用于保持对存储系统的单元部分之中的变化的跟踪的方法;
图4图示了包括数据存储装置和逻辑时间标识符结构的示例存储系统;
图5A至5G图示了依照特定场景的图4的逻辑时间标识符结构的一个实施例的各种阶段,并且其中逻辑时间标识符结构被布置为逻辑时间标识符的线性阵列;
图6A至6F图示了依照特定场景的图4的逻辑时间标识符结构的另一实施例的各种阶段,并且其中逻辑时间标识符结构被布置为树结构;以及
图7抽象地图示了可以在存储系统内操作以准备、操作和备份该存储系统的各种处理组件。
具体实施方式
本文中所描述的至少一些实施例涉及跟踪存储系统的单元部分之中的变化。作为示例,单元部分可以是文件系统中的文件,或者基于块的存储系统中的块。对于存储系统的至少一些单元部分中的每一个单元部分,逻辑时间标识符与单元部分相关联并且被包括在逻辑时间标识符结构内。
当写入到包括存储系统的一个或多个单元部分的特定写入部分时,针对写入部分内的任何变化的单元部分更新逻辑时间标识符。而且,一旦(多个)适当的逻辑时间标识符已经变化,该机制就计算与写入部分的一个或多个部分相关联的一个或多个逻辑时间标识符的组的冗余数据,比如校验和。存储系统的写入部分被写入。此外,与该写入部分相关联的逻辑时间标识符的组的对应的冗余数据被写入到逻辑时间标识符结构。
稍后,对于给定的写入部分,冗余数据被验证与关联于该写入部分的一个或多个逻辑时间标识符的组一致还是不一致。如果冗余数据不一致,则当前逻辑时间标识符被分配给逻辑时间标识符中的每一个。因此,不一致的写入部分被视为最近被写入。在增量备份期间,逻辑时间标识符用于确定哪些单元部分已经变化,并且从而确定哪些单元部分需要备份。由于针对写入部分的不一致的冗余数据导致针对整个写入部分的逻辑时间标识符接收当前逻辑时间,这引起该写入部分的所有单元部分已被新写入到的备份系统的出现。因此,备份系统引起整个写入部分被备份,即使单元部分中的一个或多个可能没有变化。尽管这也许可能导致在冗余数据失去一致性的罕见情况下比绝对必要的更多的备份数据被传送,但当这样的情况发生时,它防止数据不一致。
将关于图1描述计算系统的一些介绍性讨论。然后,将关于随后的附图呈现本文描述的实施例的结构和操作。
计算系统现在越来越多地采用多种多样的形式。计算系统可以例如是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心,或者甚至是传统上不被认为是计算系统的设备,比如可穿戴设备(例如眼镜)。在本说明书和权利要求书中,术语“计算系统”广义地定义为包括含有下述的任何设备或系统(或其组合):至少一个物理的和有形的处理器、以及能够在其上具有可由处理器执行的计算机可执行指令的物理的和有形的存储器。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布于网络环境中,并且可以包括多个组成的计算系统。
如图1中所图示的,在其最基本的配置中,计算系统100典型包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的或者这二者的某种组合。术语“存储器”也可以在本文中用于指代诸如物理存储介质之类的非易失性大容量存储装置。如果计算系统是分布式的,则所述处理、存储器和/或存储能力也可以是分布式的。如在本文中所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。本文中描述的不同的组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,实现为单独的线程)。
在下面的描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这样的动作在软件中实现,则响应于已执行的计算机可执行指令,(执行该动作的相关联的计算系统的)一个或多个处理器指导计算系统的操作。例如,这样的计算机可执行指令可以体现在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的一个示例涉及数据的操纵。计算机可执行指令(和所操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,该通信信道108允许计算系统100通过例如网络110与其它计算系统通信。
本文中描述的实施例可以包括或利用专用或通用计算系统,该专用或通用计算系统包括计算机硬件,诸如例如一个或多个处理器和系统存储器,如在下面更详细地讨论的。本文描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理的和其它的计算机可读介质。这样的计算机可读介质可以是可以被通用或专用计算系统访问的任何可用的介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,以示例而非限制的方式,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。
计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置,磁盘存储装置或其它磁性存储设备,或可以用于存储计算机可执行指令或数据结构形式的期望的程序代码构件并且可由通用或专用计算系统访问的任何其它物理的和有形的存储介质。
“网络”被定义为允许实现在计算系统和/或模块和/或其它电子设备之间输送电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬布线、无线、或者硬布线或无线的组合)被传送或提供到计算系统时,计算系统将该连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,其可以用于承载计算机可执行指令或数据结构形式的期望的程序代码构件并且可以由通用或专用计算系统访问。上述的组合也应包括在计算机可读介质的范围内。
此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码构件可以从传输介质自动地传送到存储介质(或者反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以在网络接口模块(例如“NIC”)内的RAM中缓冲,并且然后最终传送到计算系统处的计算系统RAM和/或较不易失的存储介质。因此,应当理解,存储介质可以被包括在也(或者甚至主要地)利用传输介质的计算系统组件中。
计算机可执行指令包括例如指令和数据,该指令和数据当在处理器处被执行时引起通用计算系统、专用计算系统或专用处理设备执行某功能或功能的组。计算机可执行指令可以是例如在由处理器直接执行之前经历某种转变(例如编译)的二进制数或甚至指令,比如中间格式指令(诸如汇编语言),或者甚至是源代码。尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中限定的主题不一定限于上述所描述的特征或动作。相反,所描述的特征和动作被公开为实现权利要求的示例形式。
本领域技术人员将领会,本发明可以在具有许多类型的计算系统配置的网络计算环境中实践,该计算系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(例如眼镜)等。本发明还可以在分布式系统环境中实现,在该分布式系统环境中,通过网络(由硬布线数据链路、由无线数据链路,或者由硬布线和无线数据链路的组合)链接的本地和远程计算系统两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
图2图示了根据本文中所描述原理的操作的时间线200。首先是准备阶段210,在准备阶段中计算系统通过设置逻辑时间标识符结构来为保持对存储系统中的变化进行跟踪的操作做准备。第二是操作阶段220,在操作阶段中计算系统从事正常操作并且因此到存储系统执行写入操作221并且等同写入到逻辑时间标识符结构,并且然后稍后根据本文中所描述的原理使用逻辑时间标识符结构来验证222写入操作的一致性。最后,存在潜在备份阶段230,其中逻辑时间标识符结构用于将存储系统备份到一致状态。
更具体地,图3图示了用于保持跟踪存储系统的部分之中的变化的方法300的流程图。在准备阶段210中,逻辑时间标识符与逻辑时间标识符结构中的每个单元部分相关联(动作310)。图4图示包括逻辑时间标识符结构的示例存储系统400。将在返回到图3的方法300的流程图之前描述图4的示例。
作为示例,图4图示包括数据存储装置400A和逻辑时间标识符结构400B的示例存储系统400。数据存储装置400A包括单元部分401A至409A。在一个实施例中,存储系统400A是文件系统,其中每个单元部分401A至409A是文件。然而,存储系统400A也可以是基于块的系统,其中每个单元部分401A至409A是块。当然,在典型的存储系统中可能存在更多的单元部分,但是为了清楚起见,图4的示例保持简单。
存储系统400A还包括写入部分411A至413A。根据本文中描述的最宽的方面,写入部分可以包括一个或多个单元部分,并且表示单元部分可以如何被写入到存储系统中。例如,如果存储系统400A是文件系统,则典型地一次写入一个文件。因此,写入部分可以各自仅包含一个单元部分(即一个文件)。然而,如果存储系统400A是基于块的存储系统,则典型地块被一次写入一页,一页包含多个块。在所图示的示例中,写入部分411A至413A中的每一个被表示为各自包含三个单元部分。这再次是为了简单和清楚地描述该示例的目的。在典型的存储系统中,可能存在数百万或数十亿个单元部分和写入部分,并且每个写入部分可能潜在地包含不同数量的单元部分。
逻辑时间标识符结构400B包括与单元部分401A至409A中的每一个分别关联的逻辑时间标识符401B至409B。图5A至5G图示了逻辑时间标识符结构400B的渐进状态,因为状态将在下文描述的特定示例中。在图5A至5G的示例中,逻辑时间标识符结构包括条目的线性阵列,每个条目是用于存储系统的相关联的单元部分的逻辑时间标识符。图6A至6F图示了逻辑时间标识符结构400B的渐进状态,其中使用树结构来跟踪冗余数据。图5A至5D分别对应于图6A至6D。图5E和5F对应于图6E。图5F和5G分别对应于图6E和6F。因此,图5A至5G以及图6A至6F的示例将在下文描述场景时被频繁地参考。
在图5A至5G和图6A至6F的特定示例中,逻辑时间标识符是序列号,并且逻辑时间由序列号表示,其在每次逻辑时间前进时增加1。例如,在图5A的状态500A中以及在图6A的状态600A中,逻辑时间标识符401B至409B各自被归零。在一些情况下,逻辑时间标识符可能与实际时间相关联,使得可以输入实际时间,并且可以检索对应的逻辑时间标识符。
再次参考图4,用于写入部分411A至413A中的每一个的逻辑时间标识符的组分别具有相关联的冗余数据411B至413B。冗余数据411B至413B可以用于分别确认对应的写入部分411A至413A内的逻辑时间标识符的正确性。例如,写入部分411A与单元部分401A至403A相关联;并且单元部分401A至403A具有相关联的逻辑时间标识符401B至403B。因此,冗余数据411B表示可用于验证逻辑时间标识符401B至403B的精度的冗余数据(例如校验和)。再者,写入部分412A与单元部分404A至406A相关联;并且单元部分404A至406A具有相关联的逻辑时间标识符404B至406B。因此,冗余数据412B表示可用于验证逻辑时间标识符404B至406B的精度的冗余数据(例如校验和)。最后,写入部分413A与单元部分407A至409A相关联;并且单元部分407A至409A具有相关联的逻辑时间标识符407B至409B。因此,冗余数据413B表示可用于验证逻辑时间标识符407B至409B的精度的冗余数据(例如校验和)。
在逻辑时间标识符401A至409A在图5A中被归零的情况下,冗余数据411B、411B和411C各自表示三个零的冗余数据。在所图示的图5A至5G的命名法中数字序列的冗余数据通过使该数字序列用锯齿状下划线图示来符号化。例如,在图5A中,冗余数据411B被表示为具有值
Figure DEST_PATH_IMAGE002
图6A至6F图示了依照与关于图5A至5G描述的相同特定场景的图4的逻辑时间标识符结构的另一实施例的各个阶段。然而,在此第二实施例中,逻辑时间标识符结构可以采用树结构的形式。
在这个树结构中,如果写入部分不具有相关联的逻辑时间标识符的组,则逻辑时间标识符被假定为由树中的根节点表示的默认值。如果针对写入部分的逻辑时间标识符结构的组中的任何一个不同于在根节点处表示的默认值,则该逻辑时间标识符结构的组将具有它自己的子节点。如果逻辑时间标识符的组对于给定的写入部分是相同的,则该子节点将简单地保持该值。如果逻辑时间标识符的组中的每一个对于写入部分并不相同,则子节点将包含针对逻辑时间标识符系列的冗余数据。
例如,参考图6A的示例,所有逻辑时间标识符都是默认值零。因此,由于逻辑时间标识符401B至409B的值各自为0,所以只存在表示值0的单个根节点610。
移动到阶段220的写入操作221,当写入到包括存储系统的(多个)单元部分的特定写入部分时,系统针对已经变化的写入部分的(多个)单元部分中的任何一个更新逻辑时间标识符(动作320),并且计算与(多个)逻辑时间标识符相关联的冗余数据(例如校验和)(动作321),该(多个)逻辑时间标识符与写入部分的(多个)单元部分相关联。系统写入该写入部分(动作322)并且还写入相关联的冗余数据(动作323)。在一些实施例中,冗余数据随着逻辑时间标识符的更新(动作320)被并行地写入(动作323)。因此,如果稍后发现冗余数据与逻辑时间标识符不一致(动作324),则有可能已经发生电源故障,并且逻辑时间标识符可能被视为是损坏的。这就是为什么逻辑时间标识符在这种情况下被以由应用使用数据测量的当前逻辑时间标记。
例如,参考图5B的状态500B,假设对单元部分402A和403A进行写入,并且逻辑时间已经前进到时间1。因此,针对写入部分411A的对应的单元部分401A至403A的逻辑时间标识符401B至403B从000变化为011(动作320)。然后冗余数据411B被重新计算(动作321)为
Figure DEST_PATH_IMAGE004
。然后,系统将新的写入部分411A写入到单元部分401A至403A(动作322),并且还写入现在具有值
Figure DEST_PATH_IMAGE004A
的新的冗余数据411B(动作323)。参考图6B的状态600B,由于写入部分411A不再由根节点610精确地表示,所以创建叶节点611,其包含针对逻辑时间标识符401B至403B的冗余数据(例如校验和)。
接下来,参考图5C的状态500C,假设对单元部分403A和404A进行写入,并且逻辑时间已经前进到时间2。因此,针对写入部分411A的对应的单元部分401A至403A的逻辑时间标识符401B至403B从011变化为012(动作320)。此外,针对写入部分412B的对应的单元部分404A至406A的逻辑时间标识符404B至406B从000变化为200(也是动作320)。然后,冗余数据411B被重新计算(动作321)为
Figure DEST_PATH_IMAGE006
。另外,然后,冗余数据412B被重新计算(也是动作321)为
Figure DEST_PATH_IMAGE008
。然后,系统将新的写入部分411A写入到单元部分401A至403A(动作322),将新的写入部分412A写入单元部分404A至406A(也是动作322),新的冗余数据411B现在具有值
Figure DEST_PATH_IMAGE009
(动作323),并且新的冗余数据412B现在具有值
Figure DEST_PATH_IMAGE010
(也是动作323)。参考图6C的状态600C,由于写入部分412A不再由根节点610精确地表示,所以创建叶节点612,其包含针对逻辑时间标识符404B至404B的冗余数据(例如校验和)。此外,叶节点611已经以与冗余数据411B相同的方式改变。
接下来,参考图5D的状态500D,假设对单元部分405A和406A进行写入,并且逻辑时间已经前进到时间3。因此,针对写入部分412A的对应的单元部分404A至406A的逻辑时间标识符404B至406B从200变化为233(动作320)。然后,冗余数据412B被重新计算(动作321)为
Figure DEST_PATH_IMAGE012
。然后,系统将新的写入部分412A写入到单元部分404A至406A(动作322),并且还写入现在具有值
Figure DEST_PATH_IMAGE012A
的新的冗余数据412B(动作323)。类似地,参考图6D的状态600D,叶节点612的值也相应地变化。
往回参考图2,在操作阶段220期间,可以偶尔执行验证操作222。该验证操作222可以响应于某些事件执行,并且/或者可以周期性地执行。作为示例,验证操作222可以在检测到在系统中发生电力循环之后执行。
在验证操作222期间,可以在写入操作221之后验证冗余数据与一个或多个逻辑时间标识符的组不一致(动作324)。如果冗余数据不一致,则针对对应的写入部分中的所有单元部分,关于当前逻辑时间3执行写入操作221。
例如,参考图5E的状态500E,假设在仍处于逻辑时间3时,冗余数据412B现在具有(由“***”表示的)损坏值(动作324),该损坏值不再与关联于对应的写入部分412A的单元部分404A至406A的逻辑时间标识符404B至406B的值233一致。在这种情况下,如在图5F的状态中所表示的,写入部分412A的对应的单元部分404A至406A的逻辑时间标识符404B至406B各自以当前逻辑时间标识符3重写(动作325)。然后,新的冗余数据412B被计算为
Figure DEST_PATH_IMAGE014
(动作321),并且冗余数据被写入(动作323)。参考图6E的状态600E,由于对应于叶节点611的写入部分的逻辑时间标识符404B至406B现在全部相同(逻辑时间3),所以叶节点612可以可选地变换为具有简单值3。可替代地,叶节点612可能已具有冗余值
Figure DEST_PATH_IMAGE015
换句话说,如果冗余数据(例如校验和)不正确,则整个相关联的写入部分被视为好像其具有最新序列号。下次更新写入部分时,当前的逻辑时间被显式存储用于该写入部分的每个逻辑时间标识符。这意味着如果所述页以某种方式变得损坏,当用户请求从时间t(其小于当前时间)变化的集合时,用户将看到由逻辑时间标识符结构的这部分所表示的一切已经变化,即使此写入部分的仅一些或者甚至没有单元部分变化。这比假设没有变化安全得多(因为不知道什么变化)。
接下来,参考图5G的状态500G,假设对单元部分406A和407A进行写入,并且逻辑时间已经前进到时间4。因此,写入部分412A的对应的单元部分404A至406A的逻辑时间标识符404B至406B从333变化到334(动作320)。此外,写入部分413A的对应的单元部分407A至409A的逻辑时间标识符407B至409B从000变化为400(也是动作320)。然后,冗余数据412B被重新计算(动作321)为
Figure DEST_PATH_IMAGE017
。此外,然后,冗余数据413B被重新计算(也是动作321)为
Figure DEST_PATH_IMAGE019
。然后,系统将新的写入部分412A写入到单元部分404A至406A(动作322),将新的写入部分413A写入到单元部分407A至409A(也是动作322),新的冗余数据412B现在具有值
Figure DEST_PATH_IMAGE020
(动作323),并且新的冗余数据413B现在具有值
Figure DEST_PATH_IMAGE021
(也是动作323)。参考图6F的状态600F,由于写入部分413A不再由根节点610精确地表示,所以创建叶节点613,其包含针对逻辑时间标识符407B至409B的冗余数据(例如校验和)。此外,由于叶节点612中的值(3)不再表示写入部分412A的所有的逻辑时间标识符,叶节点612被修改为包括冗余数据
Figure DEST_PATH_IMAGE017A
再次参考图4,现在假设存储系统400需要被备份。例如,在图2中,时间线200从正常操作阶段220进行到备份阶段230。备份系统使用逻辑时间标识符来确定什么单元部分已经变化。例如,参考图5G和6F,如果最后的备份是在逻辑时间0之后但在逻辑时间1之前进行,则单元部分402A至407A将被备份,因为它们相应的逻辑时间标识符402B至407B各自是逻辑时间1或之后。如果最后的备份在逻辑时间1之后但在逻辑时间2之前进行,则单元部分403A至407A将被备份,因为它们相应的逻辑时间标识符403B至407B各自是逻辑时间2或之后。如果最后的备份是在逻辑时间2之后但在逻辑时间3之前进行,则单元部分404A至407A将被备份,因为它们相应的逻辑时间标识符404B至407B各自是逻辑时间3或之后。如果最后的备份是在逻辑时间3之后但在逻辑时间4之前进行,则单元部分406A和407A将被备份,因为它们相应的逻辑时间标识符406B和407B各自是逻辑时间4或之后。
由于写入部分的不一致的冗余数据导致整个写入部分的逻辑时间标识符接收当前逻辑时间,这引起该写入部分的所有单元部分已被新写入到的备份系统的出现。因此,备份系统引起整个写入部分被备份,即使一个或多个单元部分可能没有变化。尽管这也许可能导致在冗余数据失去一致性的罕见情况下比绝对必要更多的备份数据被传送,但当这样的情况发生时它保护实际数据的一致性。
图7抽象地图示了架构700,该架构700包括可以在存储系统内操作以准备、操作和备份存储系统的各种处理组件。特别地,准备组件710可以被结构化且被配置成执行上述用于准备阶段210的操作,写入组件721可以被结构化且被配置成执行写入操作221,验证组件722可以被结构化且被配置成执行验证操作222,并且备份组件730可以被结构化且被配置成执行上述用于备份阶段230的操作。
因此,本文中描述的原理提供了用于保持跟踪存储系统的任意版本之间的变化的高效机制。本发明可以以其它具体形式体现,而不脱离本发明的精神或基本特性。所描述的实施例将在所有方面都被认为仅是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是前面的描述来指示。进入权利要求的等同物的含义和范围内的所有变化将被包含在其范围内。

Claims (24)

1.一种用于保持跟踪存储系统的单元部分之中的变化的方法,所述方法包括:
对于所述存储系统中的每个单元部分,将逻辑时间标识符与所述单元部分相关联;
当写入到包括所述存储系统的单元部分中的一个或多个单元部分的特定写入部分时,执行下述:
针对所述特定写入部分内的已经变化的任何单元部分更新逻辑时间标识符的动作;
计算与关联于所述写入部分的所述一个或多个部分的一个或多个逻辑时间标识符的组相关联的冗余数据的动作;以及
写入到所述存储系统的写入部分的动作;
稍后验证所述冗余数据与一个或多个逻辑时间标识符的组不一致的动作;以及
如果所述冗余数据不一致,则将较近期的逻辑时间标识符分配给逻辑时间标识符结构中的一个或多个逻辑时间标识符的组中的每个逻辑时间标识符,使得在备份时不一致的写入部分被视为近期被写入。
2.根据权利要求1的方法,所述存储系统是虚拟硬盘驱动器。
3.根据权利要求1的方法,所述存储系统是文件系统,并且所述存储系统的单元部分是文件。
4.根据权利要求1的方法,所述存储系统是基于块的存储系统,并且所述存储系统的单元部分是块。
5.根据权利要求4的方法,所述写入部分是多个块的页。
6.根据权利要求1的方法,所述冗余数据是校验和。
7.根据权利要求1的方法,所述逻辑时间标识符结构包括条目的阵列,所述条目的阵列包括包含用于所述存储系统的至少一些单元部分中的每一个单元部分的逻辑时间标识符的条目。
8.根据权利要求1的方法,所述逻辑时间标识符结构包括树结构,其中叶节点是与写入部分相关联的逻辑时间标识符的每个组,所述叶节点中的至少一些叶节点中的每一个叶节点包括用于相关联的逻辑时间标识符组的对应的冗余数据。
9.根据权利要求8的方法,其中如果与写入部分相关联的逻辑时间标识符的组相同,则所述写入部分不由叶节点表示,而是所述逻辑时间标识符的值在父节点处表示。
10.根据权利要求1的方法,所述逻辑时间标识符包括序列号。
11.根据权利要求1的方法,所述逻辑时间标识符中的至少一些中的每一个与实际时间相关联。
12.根据权利要求1的方法,其中所述稍后验证所述冗余数据与一个或多个逻辑时间标识符的组不一致的动作发生在已经检测到发生电力循环之后,以及在所述写入部分已被写入之后。
13.根据权利要求1的方法,进一步包括:
使用所述逻辑时间标识符结构将所述存储系统备份到特定逻辑时间的动作;所述较近期的逻辑时间标识符比所述特定逻辑时间更近。
14.一种或多种计算机可读存储介质,其存储计算机可读指令,所述计算机可读指令在被执行时执行权利要求1-13中任一项的方法。
15.一种计算设备,包括:
一个或多个处理器;以及
一个或多个存储器,其上存储有计算机指令,当所述计算机指令被处理器执行时,使所述计算设备执行权利要求1-13中任一项的方法。
16.根据权利要求15所述的计算设备,其中对于所述存储系统中的每个单元部分,与所述单元部分相关联的所述逻辑时间标识符被包括在所述逻辑时间标识符结构中。
17.根据权利要求16所述的计算设备,其中当写入到包括所述存储系统的所述单元部分中的一个或多个单元部分的所述特定写入部分时,所述方法还包括:执行向所述逻辑时间标识符结构写入对应于所述写入部分的所述冗余数据的动作。
18.一种计算机可读存储介质,其上具有计算机可执行指令,所述计算机可执行指令被结构化以使得当由计算系统的一个或多个处理器执行时致使所述计算系统实例化且/或操作下述:
逻辑时间标识符结构,其将逻辑时间标识符与存储系统的每一个单元部分相关联;
写入组件,其被配置成通过执行下述而写入到所述存储系统的写入部分,每一个写入部分包括一个或多个单元部分:针对特定写入部分内的已经变化的任何单元部分更新逻辑时间标识符的动作;计算与关联于所述写入部分的所述一个或多个单元部分的一个或多个逻辑时间标识符的组相关联的冗余数据的动作;写入到所述存储系统的写入部分的动作;以及将对应于所述写入部分的冗余数据写入到对应于所述写入部分的逻辑时间标识符结构的动作;以及
验证组件,其被配置成稍后针对所述写入部分中的至少一些中的每一个执行下述:验证所述冗余数据与所述写入部分的一个或多个逻辑时间标识符的组不一致的动作;以及如果不一致,则将当前逻辑时间标识符分配给所述逻辑时间标识符结构中的用于所述写入部分的一个或多个逻辑时间标识符的组中的每个逻辑时间标识符,使得不一致的写入部分被视为近期被写入。
19.根据权利要求18的计算机可读存储介质,所述计算机可执行指令被进一步结构化以使得当由所述一个或多个处理器解译时致使所述计算系统实例化且/或操作下述:
备份组件,其被配置成使用所述逻辑时间标识符结构将所述存储系统备份到特定逻辑时间。
20.根据权利要求18的计算机可读存储介质,所述逻辑时间标识符结构包括条目的阵列,所述条目的阵列包括包含用于所述存储系统的至少一些部分中的每一个部分的逻辑时间标识符的条目。
21.根据权利要求18的计算机可读存储介质,所述逻辑时间标识符结构包括树结构,其中叶节点是与写入部分相关联的逻辑时间标识符的每个组,所述叶节点中的至少一些叶节点中的每一个叶节点包括用于相关联的逻辑时间标识符组的对应的冗余数据。
22.根据权利要求21的计算机可读存储介质,其中如果与写入部分相关联的逻辑时间标识符的组相同,则所述写入部分不由叶节点表示,而是所述逻辑时间标识符的值在父节点处表示。
23.根据权利要求18的计算机可读存储介质,所述存储系统是基于块的存储系统,所述存储系统的单元部分是块,并且所述写入部分是块的组。
24.一种用于保持跟踪存储系统的单元部分之中的变化的设备,包括:
用于,对于存储系统中的每个单元部分,将逻辑时间标识符与逻辑时间标识符结构中的单元部分相关联的装置;
用于,当写入到包括所述存储系统的单元部分中的一个或多个单元部分的特定写入部分时,执行下述的装置:
针对所述特定写入部分内的已经变化的任何单元部分更新逻辑时间标识符的动作;
计算与关联于所述写入部分的所述一个或多个部分的一个或多个逻辑时间标识符的组相关联的冗余数据的动作;
写入到所述存储系统的写入部分的动作;以及
将对应于所述写入部分的冗余数据写入到对应于所述写入部分的逻辑时间标识符结构的动作;
稍后验证所述冗余数据与一个或多个逻辑时间标识符的组不一致的动作;以及
用于,如果所述冗余数据不一致,则将当前逻辑时间标识符分配给所述逻辑时间标识符结构中的一个或多个逻辑时间标识符的组中的每个逻辑时间标识符装置,使得在备份时不一致的写入部分被视为近期被写入。
CN201580073191.7A 2015-01-12 2015-12-29 使用逻辑时间中的冗余的变化跟踪 Active CN107111529B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/595047 2015-01-12
US14/595,047 US9547555B2 (en) 2015-01-12 2015-01-12 Change tracking using redundancy in logical time
PCT/US2015/067761 WO2016114921A1 (en) 2015-01-12 2015-12-29 Change tracking using redundency in logical time

Publications (2)

Publication Number Publication Date
CN107111529A CN107111529A (zh) 2017-08-29
CN107111529B true CN107111529B (zh) 2020-04-28

Family

ID=55275168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580073191.7A Active CN107111529B (zh) 2015-01-12 2015-12-29 使用逻辑时间中的冗余的变化跟踪

Country Status (5)

Country Link
US (1) US9547555B2 (zh)
EP (1) EP3245589B1 (zh)
CN (1) CN107111529B (zh)
ES (1) ES2715506T3 (zh)
WO (1) WO2016114921A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430272B2 (en) 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
US10949412B2 (en) 2018-09-21 2021-03-16 Microsoft Technology Licensing, Llc Log marking dependent on log sub-portion
CN112379656A (zh) * 2020-10-09 2021-02-19 爱普(福建)科技有限公司 工业系统异常数据的检测的处理方法、装置、设备和介质
US11836052B2 (en) * 2021-07-27 2023-12-05 Rubrik, Inc. Data backup and recovery management using allocated data blocks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149694A (zh) * 2007-11-02 2008-03-26 西安三茗科技有限责任公司 基于块级的增量备份和整卷恢复的方法
CN101901172A (zh) * 2009-05-26 2010-12-01 联想(北京)有限公司 数据处理装置和方法
CN102646064A (zh) * 2011-02-16 2012-08-22 微软公司 支持迁移的增量虚拟机备份

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721915A (en) 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US6795966B1 (en) 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6411964B1 (en) 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US7249262B2 (en) * 2002-05-06 2007-07-24 Browserkey, Inc. Method for restricting access to a web site by remote users
US6981114B1 (en) 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
US7328366B2 (en) * 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7162662B1 (en) 2003-12-23 2007-01-09 Network Appliance, Inc. System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US7567974B2 (en) * 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8145601B2 (en) * 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7516286B1 (en) 2005-08-31 2009-04-07 Symantec Operating Corporation Conversion between full-data and space-saving snapshots
US7447854B1 (en) 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
US7519858B2 (en) 2006-08-18 2009-04-14 Computer Associates Think, Inc. Selective file restoration from incremental backups
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US20080140963A1 (en) 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US8055613B1 (en) * 2008-04-29 2011-11-08 Netapp, Inc. Method and apparatus for efficiently detecting and logging file system changes
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8495316B2 (en) 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8443166B2 (en) 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
US20100262797A1 (en) 2009-04-10 2010-10-14 PHD Virtual Technologies Virtual machine data backup
US8996826B2 (en) 2009-04-28 2015-03-31 Symantec Corporation Techniques for system recovery using change tracking
US8805788B2 (en) 2009-05-04 2014-08-12 Moka5, Inc. Transactional virtual disk with differential snapshots
US8538919B1 (en) 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
US8560855B2 (en) * 2009-08-27 2013-10-15 Cleversafe, Inc. Verification of dispersed storage network access control information
US8356148B2 (en) 2009-09-22 2013-01-15 Lsi Corporation Snapshot metadata management in a storage system
US8726273B2 (en) 2009-12-03 2014-05-13 Vmware, Inc. Space efficient virtual machines
US8549241B2 (en) 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
JP5060572B2 (ja) * 2010-03-09 2012-10-31 株式会社東芝 データ通信装置及び方法
US9558074B2 (en) 2010-06-11 2017-01-31 Quantum Corporation Data replica control
US10402268B2 (en) * 2011-02-01 2019-09-03 Pure Storage, Inc. Utilizing a dispersed storage network access token module to acquire digital content from a digital content provider
US9959174B2 (en) 2011-05-23 2018-05-01 International Business Machines Corporation Storage checkpointing in a mirrored virtual machine system
US9003103B2 (en) 2011-09-12 2015-04-07 Microsoft Technology Licensing, Llc Nonvolatile media dirty region tracking
US8793451B2 (en) 2012-03-29 2014-07-29 International Business Machines Corporation Snapshot content metadata for application consistent backups
US8751515B1 (en) 2012-03-30 2014-06-10 Emc Corporation System and method for file-based virtual machine incremental backup
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9053064B2 (en) 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US20140236892A1 (en) 2013-02-21 2014-08-21 Barracuda Networks, Inc. Systems and methods for virtual machine backup process by examining file system journal records
EP2955637B1 (en) 2013-11-20 2017-08-16 Huawei Technologies Co., Ltd. Method, system and apparatus for generating snapshot
US9430272B2 (en) * 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149694A (zh) * 2007-11-02 2008-03-26 西安三茗科技有限责任公司 基于块级的增量备份和整卷恢复的方法
CN101901172A (zh) * 2009-05-26 2010-12-01 联想(北京)有限公司 数据处理装置和方法
CN102646064A (zh) * 2011-02-16 2012-08-22 微软公司 支持迁移的增量虚拟机备份

Also Published As

Publication number Publication date
EP3245589A1 (en) 2017-11-22
EP3245589B1 (en) 2018-12-12
US20160203052A1 (en) 2016-07-14
US9547555B2 (en) 2017-01-17
WO2016114921A1 (en) 2016-07-21
CN107111529A (zh) 2017-08-29
ES2715506T3 (es) 2019-06-04

Similar Documents

Publication Publication Date Title
CN107111529B (zh) 使用逻辑时间中的冗余的变化跟踪
US11354065B2 (en) Cloud edition and retrieve
EP3234772B1 (en) Efficiently providing virtual machine reference points
US10146633B2 (en) Data recovery from multiple data backup technologies
US20160026540A1 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
US10474537B2 (en) Utilizing an incremental backup in a decremental backup system
US9128627B1 (en) Method and system for virtual machine backup
US9977706B2 (en) System and method of validating data for incremental format of backup archive
US8850455B1 (en) Method and system for parent backup application monitoring of children backup applications
US10409691B1 (en) Linking backup files based on data partitions
US10601837B1 (en) Systems and methods for performing data protection operations with a proxy register
WO2020060620A1 (en) Storage segment server covered cache
US8880472B2 (en) Method of backing-up, and making available, electronic data and software initially stored on a client server
US10860540B1 (en) Method and system for synchronizing backup and cloning schedules
US9317547B1 (en) Method and system for children backup applications communicating to parent backup applications via application program interfaces
US10691557B1 (en) Backup file recovery from multiple data sources
US9524217B1 (en) Federated restores of availability groups
US11442828B2 (en) Handling failures in distributed data system
US9772908B1 (en) Method and system for concurrently backing up data streams of multiple computers based on backup time estimates
US9588716B1 (en) Method and system for backup operations for shared volumes
US10884874B1 (en) Federated restore of availability group database replicas
US10114967B2 (en) Converged mechanism for protecting data
US10725996B1 (en) Method and system for determining differing file path hierarchies for backup file paths
US10146638B1 (en) Check point recovery based on identifying changed blocks for block-based backup files
US10534760B1 (en) Method and system for retrieving backup parameters for recovery

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