US20070226279A1 - Method and system for backing up files - Google Patents

Method and system for backing up files Download PDF

Info

Publication number
US20070226279A1
US20070226279A1 US11756644 US75664407A US2007226279A1 US 20070226279 A1 US20070226279 A1 US 20070226279A1 US 11756644 US11756644 US 11756644 US 75664407 A US75664407 A US 75664407A US 2007226279 A1 US2007226279 A1 US 2007226279A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
files
list
group
time
example
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.)
Abandoned
Application number
US11756644
Inventor
Edward Barton
Avishai Hochberg
James Smith
Peter Symonds
Original Assignee
Barton Edward M
Hochberg Avishai H
Smith James P
Symonds Peter B
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

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

One aspect of the invention is a method for backing up files, which for example, includes, scanning at least one directory; creating a first list comprising all files at a time t1 in the scanned at least one directory; saving values of a plurality of attributes, corresponding at the time t1, with each file in the first group of files, to create a first snapshot; backing up the files in the first group of files; scanning the at least one directory after backing up the files in the first group of files; creating a second list comprising all files at a time t2 in the scanned at least one directory; saving values of the plurality of attributes, corresponding at the time t2, with each file in the second group of files, to create a second snapshot; and comparing the first snapshot with the second snapshot.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • [0001]
    This application is a continuation of U.S. patent application Ser. No. 10/764,069, filed Jan. 23, 2004, titled “Method and system for ensuring consistency of a group”, which is incorporated herein by this reference.
  • BACKGROUND
  • [0002]
    1. Technical Field
  • [0003]
    The present invention relates to ensuring consistency of a group of objects in a computing system. More particularly, some examples of the invention concern backing up files, or more generally, concern ensuring consistency of a group of objects in a computing system during a period of time.
  • [0004]
    2. Description of Related Art
  • [0005]
    In modern computing systems, information is often backed up, archived, or migrated. As an example, information, such as data objects, may be backed up, archived, or migrated from client nodes in a computer network. A storage-management software application, such as Tivoli Storage Manager (TSM), which is available from International Business Machines Corporation, may provide a repository for the information that is backed up, archived, or migrated. Additionally, a storage-management server may be used to store data objects in one or more storage repositories, and may have a database for tracking information about the stored files.
  • [0006]
    Groups of objects (which, for example may be files) may be backed up, archived, migrated, or manipulated as a single logical entity (also called a logical group). For example, a group of objects may comprise a logical entity, such as a Database, at a time t1 (beginning of backup). This logical group may be defined as a point-in-time view of the objects in the group at the time t1. Because it takes a period of time to back up all of the objects in a logical group, the logical group may become inconsistent before the backup is completed at a time t2 (end of backup). The group may become inconsistent due to changes in values of attributes of existing members of the group, or due to adding or deleting members of the group, in comparison with the point-in-time view of the group at time t1.
  • [0007]
    When information is backed up, archived, or migrated, consistency of a logical group must be maintained over a time period between the time that the members of the group are defined, and the time the group is stored on the backup storage. If the logical group becomes inconsistent during that time period, the logical group becomes invalid. For example, for backups of data files used by application servers such as WebSphere (available from International Business Machines Corporation), and for database application logical group backups, if the data and/or files in a group change during a backup, then the group becomes inconsistent, and an application dependant on the data may not function correctly.
  • [0008]
    A limited number of file systems include an agent or service, such as the Tivoli Logical Volume Snapshot Agent available from International Business Machines Corporation, or the Volume Shadow Services available from Microsoft Corporation, which have the ability to take “point-in-time” snapshots of all of the files in a file system, and which could be utilized when determining consistency of files. However, this snapshot capability is not widely available, and has limited usefulness because it cannot be used to obtain a snapshot of only a subset of files in a filesystem, and because it cannot be used with non-file data (for example, raw data).
  • [0009]
    Known techniques for performing backups must rely on application programs (for example, database applications) to guarantee data consistency. This application specific approach is generally inefficient because it is very specific and requires in depth knowledge of the way the application operates, and because it also requires an interface to the application. Additionally, known techniques are only able to ensure consistency of a single file. Consequently, known techniques are inadequate for ensuring that values of attributes of existing members of a logical group have not changed, or for ensuring that members of the logical group have not been added or deleted, during a time period of interest, for example, during the time required to perform a data backup.
  • SUMMARY
  • [0010]
    One aspect of the invention is a method for backing up files. An example of the method includes, scanning at least one directory, and creating a first list comprising all files at a time t1 in the scanned at least one directory, wherein the first list identifies a first group of files. This example also includes saving values of a plurality of attributes, corresponding at the time t1, with each file in the first group of files, to create a first snapshot, and backing up the files in the first group of files. This example also includes scanning the at least one directory after backing up the files in the first group of files, and creating a second list comprising all files at a time t2 in the scanned at least one directory, wherein the second list identifies a second group of files. This example also includes saving values of the plurality of attributes, corresponding at the time t2, with each file in the second group of files, to create a second snapshot. This example also includes comparing the first snapshot with the second snapshot.
  • [0011]
    Another aspect of the invention is a method for ensuring consistency of a group of data objects. An example of the method includes receiving a first list that identifies objects in the group. This example also includes gathering, for at least one attribute, the value of the attribute for each object identified in the first list. This example further includes storing the first list that identifies objects, and the attribute values gathered in the gathering operation, to create a first snapshot of the first list that identifies objects and the gathered attribute values. Additionally, this example includes receiving, a second list that identifies objects that are in the group after at least part of a task (for example, performing a backup) is performed, and the value after at least part of the task is performed of the at least one attribute for each object identified in the second list. This example further includes storing the second list that identifies objects, and the received attribute values, to create a second snapshot of the second list that identifies objects and the received attribute values. Additionally, this example also includes comparing the first snapshot with the second snapshot.
  • [0012]
    Other aspects of the invention are described in the sections below, and include, for example, a computing system, and a signal bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for backing up files, or more generally, for ensuring consistency of a group of data objects.
  • [0013]
    Some examples of the invention advantageously provide a simple, general purpose technique that is not application dependent, for guaranteeing data consistency for a logical group over a period of time (for example, across a backup window). Some examples of the invention also provide a number of other advantages and benefits, which should be apparent from the following description.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0014]
    FIG. 1 is a block diagram of the hardware components and interconnections of a computing system in accordance with an example of the invention.
  • [0015]
    FIG. 2 is an example of a signal-bearing medium in accordance with an example of the invention.
  • [0016]
    FIGS. 3A and 3B are a flowchart of an operational sequence for ensuring consistency of a group in accordance with an example of the invention.
  • DETAILED DESCRIPTION
  • [0017]
    The nature, objectives, and advantages of the invention will become more apparent to those skilled in the art after considering the following detailed description in connection with the accompanying drawings.
  • I. Hardware Components and Interconnections
  • [0018]
    One aspect of the invention is a computing system that can be used for ensuring consistency of a group of objects (which may be data objects). As an example, the computing system may be embodied by all, or portions of, the computing system 100 shown in FIG. 1. However, examples of the invention could be implemented on computing systems having different components than the computing system 100. The computing system 100 includes a first client computer 101, a second client computer 102, a server computer 103 (which may be called a backup storage server), and a network 104. Alternatively, only one client could be included, or additional clients could be included. The network 104 may comprise any suitable type of network, for example, the Internet, an Intranet, a Storage Area Network (SAN), a Local Area Network (LAN), and/or a Wide Area Network (WAN), and may include wireless networks, and generally may use any network protocol known in the art. In some examples, Ethernet, ESCON (Enterprise Systems CONnnector), or FICON (FIber CONnector) network protocols could be utilized.
  • [0019]
    Each client 101, 102 may run any suitable operating system, for example, Windows 2000, AIX, Solaris™, Linux, UNIX, or HP-UX™. Each client 101, 102 may be implemented on any suitable computing device, for example a personal computer, a workstation, a mainframe computer, or a supercomputer. Client 101 has a processor 106 (which may be called a processing device), and in some examples could have more than one processor. Similarly, client 102 has a processor 108. As an example, one or both of the processors 106, 108, may be a PowerPC RISC processor, available from International Business Machines Corporation, or a processor manufactured by Intel Corporation. Client 101 also may have a storage 111 that may include a primary memory 110 (for example RAM), and/or a non-volatile memory 112, both of which are coupled to the processor 106. The storage 111 may also include a backup client program 113, which may be stored in primary memory 110 and/or non-volatile memory 112. Similarly, client 102 may have a storage 114 that may include a primary memory 115 (for example RAM) and/or a non-volatile memory 116, both of which are coupled to the processor 108. The storage 114 may also include a backup client program 118, which may be stored in primary memory 115 and/or non-volatile memory 116. The storage 111, 114 associated with each client 101, 102 may be used to store data and application programs and/or other programming instructions executed by the respective processors 106, 108. The application programs could generally be any suitable applications. The non-volatile memory 112, 116 could be, for example, a hard disk drive, a drive for reading and writing from optical or magneto-optical media, a tape drive, non-volatile RAM (NVRAM), or any other suitable type of storage. Client 101 may also include a network interface 120, and client 102 may also include a network interface 122.
  • [0020]
    The backup client programs 113, 118 execute on the respective clients 101, 102, and have the capability of transmitting objects to be backed up to the server 103 via the network 104. Client data storage 124 is coupled to client 101, and client data storage 126 is coupled to client 102. The clients 101, 102 may access client data stored in the respective client data storage 124, 126, including objects that the clients 101, 102 may transmit to the server 103 for backup. Each client data storage 124, 126 could be, for example, a hard disk drive, a drive for reading and writing from optical or magneto-optical media, a tape drive, non-volatile RAM (NVRAM), or any other suitable type of storage. Alternatively, the client data could be stored in the non-volatile memories 112, 116, and if so, the client data storage 124, 126 need not be included.
  • [0021]
    The server 103 will now be discussed further. As an example, the server 103 could be a personal computer (having for example, an Intel processor running the Windows or Linux operating system), a computer workstation, a mainframe computer, a supercomputer (for example an IBM SP2 running the AIX operating system), or any other suitable computing device running any suitable operating system. As another example, the server 103 could be an IBM xSeries server. In another example, the server 103 could be an IBM zSeries Parallel Sysplex server, such as a zSeries 900, running the z Operating System (z/OS). In another example, the server 103 could be an IBM S/390 server running OS/390. The server 103 has a processor 130 (which may be called a processing device), and in some examples could have more than one processor. As an example, the processor 130, may be a PowerPC RISC processor, available from International Business Machines Corporation. In another example, the processor 130 could be a processor manufactured by Intel Corporation. In one specific example, the server 103 could use an IBM P690 power 4 processor, running the AIX operating system and Tivoli Storage Manager (TSM), all of which are available from IBM Corporation. The server may also have a storage 132, which may include a primary memory 134 (for example RAM), and/or a non-volatile memory 136, both of which are coupled to the processor 130. The storage 132 may be used to store data and application programs and/or other programming instructions executed by the processor 130. The programs could generally be any suitable programs, and could include for example, DB2, Oracle, or custom applications. The non-volatile memory 136 could be, for example, a hard disk drive, a drive for reading and writing from optical or magneto-optical media, a tape drive, non-volatile RAM (NVRAM), or any other suitable type of storage. The server 103 may also include a network interface 142.
  • [0022]
    The storage 132 may also include a backup server program 138 and a backup database 140, which may be stored in primary memory 134 and/or non-volatile memory 136. The backup server program 138 executes on the server and has the capability to perform backup operations, including receiving and storing objects transmitted from the clients 101, 102, via the network 104. Backup data storage 144 is coupled to the server 103, and the server may store objects received from the clients 101, 102 on the backup data storage device. The backup storage 144 could include, for example, one or more of the following: a hard disk drive, any suitable type of Direct Access Storage Device (DASD), a Redundant Array of Independent Disks (RAID), a tape drive, a drive for reading and writing from optical or magneto-optical media, non-volatile RAM (NVRAM), or any other suitable type of storage. As an example, the backup data storage 144 could comprise disk storage implemented with an IBM FAStT 900, and/or a tape library implemented with an IBM 3494 tape library using IBM 3590 drives, all of which are available from IBM Corporation. In another example, the backup storage 144 could be implemented with a model 2105 Enterprise Storage Server, available from IBM Corporation. The backup storage 144 may be may be coupled to the server 103 using, for example, Fibre Channel or SCSI protocol. Similarly, the client data storage 124, 126 could be implemented with any of the devices discussed above with regard to the backup storage 144, and similarly could be coupled to the respective clients 101, 102 using, for example, Fibre Channel or SCSI protocol.
  • [0023]
    As part of the process of storing backup objects received from the backup client programs 113, 118 to the backup storage 144, the backup server program 138 may store records that provide searchable and indexable information regarding backed-up objects, in the backup database 140. The backup database 140 may be implemented with any suitable database architecture, and could be, for example, a relational database, an object oriented database, or a table. If the backup objects are associated with a group, then an indication of the associated group may be included with the object information stored in the backup database 140.
  • II. Operation
  • [0024]
    In addition to the hardware embodiments described above, other aspects of the invention concern a method for ensuring consistency of a group of data objects.
  • A. Signal-Bearing Media
  • [0025]
    In the context of FIG. 1, the method aspects of the invention may be implemented, for example, by having one or more of the clients 101, 102, and in some examples, also the server 103, execute a sequence of machine-readable instructions, which can also be referred to as code. These instructions may reside in various types of signal-bearing media. In this respect, some aspects of the present invention concern a programmed product, comprising a signal-bearing medium or signal-bearing media tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for ensuring consistency of a group of data objects.
  • [0026]
    This signal-bearing medium may comprise, for example, primary memory 110 and/or non-volatile memory 112, primary memory 115 and/or non-volatile memory 116, and in some examples, may also comprise primary memory 134 and/or non-volatile memory 136. Alternatively, the instructions may be embodied in a signal-bearing medium such as the optical data storage disc 200 shown in FIG. 2. The optical disc can be any type of signal bearing disc or disk, for example, a CD-ROM, CD-R, CD-RW, WORM, DVD-R, DVD+R, DVD-RW, or DVD+RW. Additionally, whether contained in the computing system 100, or elsewhere, the instructions may be stored on any of a variety of machine-readable data storage mediums or media, which may include, for example, a “hard drive”, a RAID array, a RAMAC, a magnetic data storage diskette (such as a floppy disk), magnetic tape, digital optical tape, RAM, ROM, EPROM, EEPROM, flash memory, programmable logic, any other type of firmware, magneto-optical storage, paper punch cards, or any other suitable signal-bearing media including transmission media such as digital and/or analog communications links, which may be electrical, optical, and/or wireless. For example, in some embodiments the instructions or code may be accessible from a file server over a network, or from other transmission media, and the signal bearing media embodying the instructions or code may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, and/or infrared signals. Additionally, the signal bearing media may be implemented in hardware logic, for example, an integrated circuit chip, a Programmable Gate Array (PGA), an Application Specific Integrated Circuit (ASIC). As an example, the machine-readable instructions may comprise software object code, compiled from a language such as “C++”.
  • B. Overall Sequence of Operation
  • [0027]
    For ease of explanation, but without any intended limitation, the method aspects of the invention are described with reference to the computing system 100 described above and shown in FIG. 1.
  • [0028]
    An example of the method aspect of the present invention is illustrated in FIGS. 3A-3B, which show a sequence 300 for a method for ensuring consistency of a group (for example, a group of data objects). In some examples, the group may be a “cross transaction object group”. “Cross transaction object grouping” is a grouping mechanism by which a client can define and manipulate multiple separate objects as one logical entity (called a logical object group), and by which a storage management server can recognize the logical group relationship between separate objects so the separate objects can be treated as a unit for server processes, such as expiration. Cross transaction object grouping may be implemented by designating a single object within a group as the “leader”, and allowing the properties of the leader to determine the treatment of other members of the group. Cross transaction object grouping is described in U.S. patent application Ser. No. 10/120,015, filed Apr. 10, 2002, titled “Method, system, and program for grouping objects”, which is incorporated herein by reference.
  • [0029]
    In some examples discussed herein, the objects are described as files. However, objects, which also may be called elements or items, more generally may include files in a filesystem and/or volumes of formatted data or unformatted raw data. For example, one or more objects could be raw volumes, in which non structured data, (a stream of bytes with separators) is stored. In another example, one or more objects could be volumes in which database table space is stored. In other examples one or more objects could be flat files (which are used to store a database table on a filesystem, for keeping track of table spaces (storage areas) in a data base). In some examples objects could include bytes in RAM. Generally, an object can be any type of data or information in any form.
  • [0030]
    In some examples of the invention used for backing up objects, a list of file objects is used to determine which files to back up. One of two general techniques may be used to obtain the list of files. In a first example (called case 1), the list is pregenerated, which means that the list explicitly indicates that, for example, file1, file2, file3, filea, fileb, and filec, are the members of the logical group. In a second example (called case 2), a program scans one or more directories, and may also scan one or more subdirectories, and dynamically creates a list of files that includes all of the files in the scanned directory(s) and subdirectory(s). The directories and subdirectories may be specified. The concept of scanning to create a list is valid for one, or many directories.
  • [0031]
    A group is inconsistent at a time t2 in comparison to the group at an earlier time t1 if a file in the group has been deleted between time t1 and time t2, and for the case where the list of files is dynamically generated, if a file is added to the group (the list of files at t2) between time t1 and time t2. A group is also inconsistent at a time t2 in comparison to the group at time t1 if any attribute of any of the files in the group has changed between time t1 and time t2. As an example, attributes may include one or more of the following: timestamp (which may be used by an operating system and/or filesystem to note when a file is changed), size, owner (which may be a user), and security permissions. The files may also have other types of attributes. Some examples of the invention may be described as a method for maintaining consistency over a group of files over a window of time when the backup of a first file in the group begins, until backup of the last file is completed. Because the invention may be used to ensure data consistency in a group, it is unnecessary to use an application, such as a database application, to ensure data consistency.
  • [0032]
    For the first case where the list of files is pregenerated, the list of files will not be changed in a time period between times t1 and t2, so there is no need to check for members being added, but the files should be checked to determine if any files have been deleted, and additionally, the files should be checked to determine if any files have been changed between times t1 and t2. In the second case, where the lists at times t1 and t2 are dynamically created, the lists should also be compared to determine if any files have been added, (in addition to checking to determine if any files have been deleted or changed), between times t1 and t2, to identify instances where a person or another program has put or removed files in the specified directories, thereby corrupting the logical group. In an alternative example, t1 and t2 could designate different locations rather than different times.
  • [0033]
    The sequence 300 could be performed by client 101 and/or client 102, and in some examples may also be performed by server 103. In some examples the invention may be implemented as software that resides on one or more clients 101, 102, and in some examples the software may also reside on server 103. If more than one client is included, then one client may be designated to coordinate information from all of the clients. Referring to FIG. 3A, the sequence 300 may include, and begin with, operation 302, which comprises receiving a first list that identifies objects in the group. As an example, a pregenerated list may be received by the client 101 or the client 102. In embodiments where the first list is dynamically generated, the operation 302 of receiving a first list that identifies objects in the group comprises generating the first list. Generating the first list may comprise scanning, on one or more clients, at least one directory, at least one directory and at least one subdirectory, all or a subset of the directories in a filesystem, and/or may comprise scanning at least one directory on each of a plurality of clients.
  • [0034]
    The sequence 300 may also include operation 304, which comprises gathering, for at least one attribute, the value of the attribute for each object identified in the first list. The sequence 300 may also include operation 306, which comprises storing the first list that identifies objects, and the attribute values gathered in the gathering operation, to create a first snapshot of the first list that identifies objects and the gathered attribute values. As an example, the first list that identifies objects, and the attribute values gathered in the gathering operation may be stored in the storage 111 in client 101, and/or in the storage 114 in the client 102. The time t1 may be defined as the time that the first list that identifies objects, and the attribute values gathered in the gathering operation, are stored.
  • [0035]
    Sequence 300 may also include waiting for at least part of a task to be performed. Alternatively, the sequence 300 may include performing at least part of the task. For example, the task may comprise backing up the objects in the group (which may be described as backing up the objects identified in the first list), performing an installation (for example, of hardware, firmware, or software in the computing system 100), performing a query, or any other task. If the task comprises backing up the objects identified in the first list, performing at least part of the task may comprise transmitting the objects identified in the first list from at least one client 101, 102 to the server 103, as indicated in operation 308. Performing at least part of the task may further comprise sending the objects identified in the first list to a backup storage 144, as indicated in operation 310. Performing at least part of the task may also comprise determining if all of the objects identified in the first list have been successfully stored on the backup storage 144, as indicated in operation 312, and if not, failing the task of backing up the objects in the group in operation 314. The operation 314 of failing the task may comprise rolling back at least one commit by the server 103 (for example, the commit of the storage of one or more of the objects).
  • [0036]
    Referring to FIG. 3B, sequence 300 may also include operation 316, which comprises receiving, a second list that identifies objects that are in the group after at least part of the task is performed, and operation 318 which comprises receiving (which may comprise gathering), the value after at least part of the task is performed, of the at least one attribute for each object identified in the second list. In an alternative example, the operation 316 of receiving the second list that identifies objects in the group after at least part of the task is performed, comprises generating the second list. Generating the second list may comprise scanning, on one or more clients, at least one directory, at least one directory and at least one subdirectory, all or a subset of the directories in a filesystem, and/or may comprise scanning at least one directory on each of a plurality of clients.
  • [0037]
    Sequence 300 may also include operation 320, which comprises storing the second list that identifies objects, and the received attribute values, to create a second snapshot of the second list that identifies objects and the received attribute values. The time t2 may be defined as the time the second list that identifies objects, and the received attribute values, are stored. The first snapshot corresponds with a time t1, and the second snapshot corresponds with a time t2, wherein t1 is before t2. The period of time between t1 and t2 may be a set period of time, or may be a period of time that is not prespecified. At time t2 the server 103 will have committed all of the objects to the backup storage 144 (but will not yet have committed the backup operation as a whole). In other words, two stages of commit are used. First, a commit is done for each element individually or for multiple elements in a transaction (when the elements are backed up from the client to the server), and later, a commit is done for the entire group (if no error condition exists, namely, if the members in the group and the values of the attributes of the members of the group have not changed between t1 and t2).
  • [0038]
    Sequence 300 may also include comparing the first snapshot with the second snapshot, and may also include failing the task if the first snapshot and the second snapshot are not the same. Comparing the first and second snapshots may comprise determining if all of the objects identified in the first list are identified in the second list, and may also comprise determining if all of the objects identified in the second list are identified in the first list, as indicated in operation 322. Comparing the first and second snapshots may alternatively be described as comprising determining if the first and second lists identify the same objects. If in operation 322 it is determined that all of the objects identified in the first list are not identified in the second list, or that all of the objects identified in the second list are not identified in the first list, then the sequence 300 may include failing the task as indicated in operation 324 (which in some examples may comprise rolling back one or more commits). If in operation 322 it is determined that all of the objects identified in the first list are identified in the second list, and that all of the objects identified in the second list are identified in the first list, then the sequence 300 may include operation 326, which comprises determining if the value of the at least one attribute for each object identified in the first list is the same as the value of the at least one attribute for the same object identified in the second list. If in operation 326 it is determined that the value of the at least one attribute for each object identified in the first list is not the same as the value of the at least one attribute for the same object identified in the second list, then the sequence 300 may include operation 328, which comprises failing the task (which in some examples may comprise rolling back one or more commits). In the case of multiple attributes, the task will be failed unless all attributes for a given object are the same. If in operation 326 it is determined that the value of the at least one attribute for each object identified in the first list is the same as the value of the at least one attribute for the same object identified in the second list, then the sequence 300 may include operation 330, which comprises committing the task. Thus, some examples of the invention provide for ensuring consistency of a logical group over a period of time between the time the members of the group are defined and the time the group is committed to the server.
  • [0039]
    In summary, some aspects of the invention may be described as a method for providing 100% logical group consistency over a time period. In some examples the time period is the time it takes to back up a list of objects that comprise a logical group. A snapshot is taken of the group at time t1. After all the objects have been backed up, another snapshot of the group is taken at time t2. Taking the snapshot at time t2 involves performing a re-scan of the files in the group. If the two snapshots are identical, then the logical group has not changed and the backup is valid. If the two snapshots are not the same, then something was added, deleted, or changed and the backup of the logical group is invalid.
  • [0040]
    Some examples of the invention may be summarized as follows: First, a list of files is put in memory and values of the attributes for each file are saved. The saved list of files and values of the attributes comprise the first snapshot of the group at the beginning of processing at time t1.
  • [0041]
    Next, the files in the list of files are backed up. In some instances one or more files might be added to a group during backup processing. Adding a file will only constitute an error condition for cases where the logical group is dynamically created. Adding a file does not constitute an error for the case where the list of files is pregenerated, because any file added will be ignored during the backup processing because the list of files to be backed up will not be changed between time t1 and time t2. In some instances one or more files in a group might be deleted before or after the deleted file is processed for a backup. For example, during the time that a file1 is being backed up, a file2 might be deleted. This is an error condition that would be detected for both the case where the list of files is pregenerated, and for the case where the list of files is dynamically generated, because the deleted file2 would not be found to be backed up. In another example, if file1 is deleted after it is backed up but before all of the files in the group have been backed up, this would also constitute an error condition for both the case where the list of files is pregenerated, and for the case where the list of files is dynamically generated, and would be detected when the snapshot at time t1 is compared to the snapshot at time t2 after the backup has completed for all the files in the group. Another type of error that will exist for both the case where the list of files is pregenerated, and for the case where the list of files is dynamically generated, is when a file in a group is changed after attributes of the files are scanned for the snapshot at time t1. This error would also be also be detected when the snapshot at time t1 is compared to the snapshot at time t2 after the backup has been completed for all the files in the group.
  • [0042]
    Continuing the discussion of this example, after the backup processing is completed, a second snapshot of the logical group is taken. For the case where the list of files is pregenerated, the same list of files is used is used for the snapshot at time t2 as is used for the snapshot at time t1, and the same files attributes are rescanned. For the case where the list of files is dynamically generated, after the backup processing is completed, the dynamic file list is regenerated, and the newly generated list is put in memory and the attributes of the files in the generated list are rescanned.
  • [0043]
    At this point there are two snapshots which consist of two lists of files, one from the beginning of processing at time t1, and one from after the files have been backed up at time t2. The first snapshot also includes the values of the attributes of the files time t1, and the second snapshot also includes the values of the attributes of the files at time t2. In the case where the list of files is pregenerated, the two lists will be the same with respect to the file names. The lists of files and the values of the attributes in the two snapshots are compared against one another. If a file has been removed or changed during backup processing, and for the case where the list of files is dynamically generated also if a file has been added during backup processing, then the logical group has been corrupted and the backup is bad and the logical group is not committed. If the two snapshots are the same, then the logical group has not changed, the back up is good and can be committed.
  • [0044]
    In the preceding example, files are used as examples of the objects in the group. However, the invention may also be used with non-file objects. Also, in the preceding example, the time period that elapses between time t1 and time t2 is the time required to backup the files in the group. However, in other examples the time period could be, for example, the time required to install something, the time required to perform a query, or the time required to perform any other operation that opens a window of time where a group could be corrupted.
  • [0045]
    A specific example of a file backup implementation of the invention will now be discussed. In this example, the files in dir1 and dir2 comprise the members of the logical group. Also, in this example, files file1, file2, and file3 are in dir1, and files filea, fileb. and filec are in dir2. On a file system, the group would look like:
  • [0000]
    /dir1
  • [0000]
    file1
  • [0000]
    file2
  • [0000]
    file3
  • [0000]
    /dir2
  • [0000]
    filea
  • [0000]
    fileb
  • [0000]
    filec
  • [0046]
    An error condition where a file as changed before the backup is complete can be depicted as follows:
  • [0000]
    /dir1
  • [0000]
    file1˜(File changed)
  • [0000]
    file2
  • [0000]
    file3
  • [0000]
    /dir2
  • [0000]
    filea
  • [0000]
    fileb
  • [0000]
    filec
  • [0047]
    In this case, when the two snapshots are compared, the attributes for file1 at t1 and file1 at t2 are different. This would be an error condition for both the case where the list of files is pregenerated, and the case where the list of files is dynamically generated.
  • [0048]
    The situation where a file as been added before the backup is complete can be depicted as follows:
  • [0000]
    /dir1
  • [0000]
    filet
  • [0000]
    file2
  • [0000]
    file3
  • [0000]
    file4 (New file added)
  • [0000]
    /dir2
  • [0000]
    filea
  • [0000]
    fileb
  • [0000]
    filec
  • [0049]
    This would be an error condition only for the case where the list of files is dynamically generated.
  • [0050]
    An error condition where a file has been removed before the backup is complete can be depicted as follows:
  • [0000]
    at t2:
  • [0000]
    /dir1
  • [0000]
    file1
  • [0000]
    file2
  • [0000]
    file3
  • [0000]
    /dir2
  • [0000]
    filea
  • [0000]
    filec
  • [0000]
    fileb (Has been removed)
  • [0051]
    If fileb is removed before fileb is backed up, the backup will fail for both the case where the list of files is pregenerated, and for the case where the list of files is dynamically generated, because fileb will not be able to be located to be backed up. An error condition will also exist for both cases if fileb is removed after fileb is backed up but before the values of the attributes of the files are scanned at time t2, and an error condition will also exist for the case where the list of files is dynamically generated if fileb is removed before the list of files is generated for the snapshot at time t2.
  • III. Other Embodiments
  • [0052]
    While the foregoing disclosure shows a number of illustrative embodiments of the invention, it will be apparent to those skilled in the art that various changes and modifications can be made herein without departing from the scope of the invention as defined by the appended claims. For example, although a client-sever environment is described above, in alternative embodiments, examples of the invention could be implemented on a standalone computing system that is not within a client-server environment. In those examples, the operations discussed above could be performed on the stand alone computing system. Additionally, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.

Claims (20)

  1. 1. A storage medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for backing up files, the method comprising the following operations:
    scanning at least one directory;
    creating a first list comprising all files at a time t1 in the scanned at least one directory, wherein the first list identifies a first group of files;
    saving values of a plurality of attributes, corresponding at the time t1, with each file in the first group of files, to create a first snapshot comprising the first list and the plurality of attributes corresponding at the time t1 with each file in the first group of files;
    backing up the files in the first group of files;
    scanning the at least one directory after backing up the files in the first group of files;
    creating a second list comprising all files at a time t2 in the scanned at least one directory, wherein the second list identifies a second group of files;
    saving values of the plurality of attributes, corresponding at the time t2, with each file in the second group of files, to create a second snapshot comprising the second list and the plurality of attributes corresponding at the time t2 with each file in the second group of files; and
    comparing the first snapshot with the second snapshot.
  2. 2. The storage medium of claim 1, wherein the operation of comparing the first snapshot with the second snapshot comprises determining whether the first list of files and the second list of files are the same;
    and wherein the operations further comprise, failing the backup if the first list of files and the second list of files are not the same.
  3. 3. The storage medium of claim 1, wherein the operation of comparing the first snapshot with the second snapshot comprises determining whether the value of each of the plurality of attributes corresponding at the time t2 with each file in the second group of files is the same as the corresponding attribute at the time t1 of a corresponding file in the first group of files, and if not, failing the backup.
  4. 4. The storage medium of claim 1, wherein the operations further comprise:
    determining if all of the files in the first list of files have been successfully stored on a backup storage;
    and if not, failing the backup.
  5. 5. The storage medium of claim 2, wherein the operation of failing the backup comprises rolling back at least one commit by a server.
  6. 6. The storage medium of claim 1, wherein the plurality of attributes includes a timestamp attribute.
  7. 7. The storage medium of claim 1, wherein the plurality of attributes includes a size attribute.
  8. 8. The storage medium of claim 1, wherein the at least one directory is located on a first client data storage coupled to a first client and on a second client data storage coupled to a second client.
  9. 9. The storage medium of claim 1, wherein a period of time between t1 and t2 is a set period of time.
  10. 10. The storage medium of claim 1, wherein a period of time between t1 and t2 is not pre-specified.
  11. 11. A storage medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for backing up files, the method comprising the following operations:
    obtaining a pregenerated first list of files;
    saving values of a plurality of attributes, corresponding at a time t1, with each file in the first list of files, to create a first snapshot comprising the first list of files and the plurality of attributes corresponding at the time t1 with each file in the first list of files;
    backing up the files in the first list of files;
    saving values of the plurality of attributes, corresponding at a time t2, with each file in the first list of files, to create a second snapshot comprising the first list of files and the plurality of attributes corresponding at the time t2 with each file in the first list of files; and
    determining if any of the attributes corresponding with each file in the first list of files, is different at the time t2 than at the time t1, and if so, failing the backup.
  12. 12. The storage medium of claim 11, wherein the operations further comprise, after backing up the files in the first list of files, determining, at the time t2, if any file in the first list of files has been deleted, and if so, failing the backup.
  13. 13. The storage medium of claim 11, wherein the operation of backing up the files in the first list of files comprises transmitting the files in the first list of files over a network to a server.
  14. 14. The storage medium of claim 11, wherein the operation of failing the backup comprises rolling back at least one commit by a server.
  15. 15. A computing system, comprising:
    a first client having a first memory and a first processing device;
    wherein the processing device is programmed to perform operations for backing up files, the operations comprising:
    scanning at least one directory;
    creating a first list comprising all files at a time t1 in the scanned at least one directory, wherein the first list identifies a first group of files;
    saving values of a plurality of attributes, corresponding at the time t1, with each file in the first group of files, to create a first snapshot comprising the first list and the plurality of attributes corresponding at the time t1 with each file in the first group of files;
    transmitting the files in the first group of files to a server, to backup the files in the first group of files;
    scanning the at least one directory after transmitting the files in the first group of files to the server;
    creating a second list comprising all files at a time t2 in the scanned at least one directory, wherein the second list identifies a second group of files;
    saving values of the plurality of attributes, corresponding at the time t2, with each file in the second group of files, to create a second snapshot comprising the second list and the plurality of attributes corresponding at the time t2 with each file in the second group of files; and
    comparing the first snapshot with the second snapshot.
  16. 16. The computing system of claim 15, further comprising:
    a second client having a second memory and a second processing device, wherein the second client is communicatively coupled to the first client and to the server.
  17. 17. The computing system of claim 16, wherein the first client is configured to coordinate information transmitted from the first client and the second client.
  18. 18. A method for backing up files, comprising the following operations;
    scanning at least one directory;
    creating a first list comprising all files at a time t1 in the scanned at least one directory, wherein the first list identifies a first group of files;
    saving values of a plurality of attributes, corresponding at the time t1, with each file in the first group of files, to create a first snapshot comprising the first list and the plurality of attributes corresponding at the time t1 with each file in the first group of files;
    backing up the files in the first group of files;
    scanning the at least one directory after backing up the files in the first group of files;
    creating a second list comprising all files at a time t2 in the scanned at least one directory, wherein the second list identifies a second group of files;
    saving values of the plurality of attributes, corresponding at the time t2, with each file in the second group of files, to create a second snapshot comprising the second list and the plurality of attributes corresponding at the time t2 with each file in the second group of files; and
    comparing the first snapshot with the second snapshot.
  19. 19. The method of claim 18, wherein the at least one directory is located on a first client data storage coupled to a first client and on a second client data storage coupled to a second client.
  20. 20. The method of claim 19, wherein the operation of comparing the first snapshot with the second snapshot comprises determining whether the value of each of the plurality of attributes corresponding at the time t2 with each file in the second group of files is the same as the corresponding attribute at the time t1 of a corresponding file in the first group of files, and if not, failing the backup.
US11756644 2004-01-23 2007-06-01 Method and system for backing up files Abandoned US20070226279A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10764069 US7240171B2 (en) 2004-01-23 2004-01-23 Method and system for ensuring consistency of a group
US11756644 US20070226279A1 (en) 2004-01-23 2007-06-01 Method and system for backing up files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11756644 US20070226279A1 (en) 2004-01-23 2007-06-01 Method and system for backing up files

Publications (1)

Publication Number Publication Date
US20070226279A1 true true US20070226279A1 (en) 2007-09-27

Family

ID=34795199

Family Applications (2)

Application Number Title Priority Date Filing Date
US10764069 Active 2024-09-07 US7240171B2 (en) 2004-01-23 2004-01-23 Method and system for ensuring consistency of a group
US11756644 Abandoned US20070226279A1 (en) 2004-01-23 2007-06-01 Method and system for backing up files

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10764069 Active 2024-09-07 US7240171B2 (en) 2004-01-23 2004-01-23 Method and system for ensuring consistency of a group

Country Status (1)

Country Link
US (2) US7240171B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259527A1 (en) * 2005-05-13 2006-11-16 Devarakonda Murthy V Changed files list with time buckets for efficient storage management
US20090164530A1 (en) * 2007-12-21 2009-06-25 Joseph Milton Gilpin Concurrently Backing Up Data from Multiple Backup Servers in a Backup Storage Tier
US7590633B1 (en) * 2002-03-19 2009-09-15 Netapp, Inc. Format for transmitting file system information between a source and a destination
US20110231698A1 (en) * 2010-03-22 2011-09-22 Zlati Andrei C Block based vss technology in workload migration and disaster recovery in computing system environment
US20150081993A1 (en) * 2013-09-13 2015-03-19 Vmware, Inc. Incremental backups using retired snapshots
US9767177B1 (en) * 2005-03-28 2017-09-19 Federal Home Loan Mortgage Corporation System and method for optimizing data recovery in a parallel database

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7340463B1 (en) * 2004-06-25 2008-03-04 Apple Inc. Caching permissions information
US8135861B1 (en) * 2004-10-06 2012-03-13 Emc Corporation Backup proxy
US20060136501A1 (en) * 2004-12-21 2006-06-22 International Business Machines Corporation Method and apparatus for saving and restoring parameter values set with user commands
JP2006323663A (en) * 2005-05-19 2006-11-30 Nec Corp Information processing system, replication method, and difference information holding device and program
US7650366B1 (en) * 2005-09-09 2010-01-19 Netapp, Inc. System and method for generating a crash consistent persistent consistency point image set
US7590806B2 (en) * 2005-12-07 2009-09-15 Microsoft Corporation Filtering of transactional memory operations using associative tables
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US7941404B2 (en) * 2006-03-08 2011-05-10 International Business Machines Corporation Coordinated federated backup of a distributed application environment
JP2007280236A (en) * 2006-04-11 2007-10-25 Hitachi Ltd Backup method and backup program
US7809687B2 (en) * 2006-08-04 2010-10-05 Apple Inc. Searching a backup archive
US7853567B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Conflict resolution in recovery of electronic data
US8311988B2 (en) * 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US7856424B2 (en) * 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US20080034019A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for multi-device electronic backup
US7853566B2 (en) * 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US8370853B2 (en) * 2006-08-04 2013-02-05 Apple Inc. Event notification management
US7809688B2 (en) * 2006-08-04 2010-10-05 Apple Inc. Managing backup of content
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US20080034004A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for electronic backup
US8166415B2 (en) * 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US8468136B2 (en) * 2007-06-08 2013-06-18 Apple Inc. Efficient data backup
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8429425B2 (en) 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US8010900B2 (en) * 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US20080307017A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8725965B2 (en) 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8775371B2 (en) * 2009-11-11 2014-07-08 International Business Machines Corporation Synchronizing an auxiliary data system with a primary data system
US20110121108A1 (en) * 2009-11-24 2011-05-26 Stephan Rodewald Plasma polymerization nozzle
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US8880475B2 (en) 2011-04-08 2014-11-04 International Business Machines Corporation Reusing snapshots in a network data management protocol backup operation
US9613104B2 (en) * 2012-02-17 2017-04-04 Netflix, Inc. System and method for building a point-in-time snapshot of an eventually-consistent data store
US9223811B2 (en) 2012-05-31 2015-12-29 International Business Machines Corporation Creation and expiration of backup objects in block-level incremental-forever backup systems
US9372638B1 (en) * 2013-02-08 2016-06-21 Veritas Technologies Llc Systems and methods for backing up virtual machine data
US9740544B2 (en) * 2013-02-26 2017-08-22 Red Hat Israel, Ltd. Live snapshotting of multiple virtual disks in networked systems
US20150100409A1 (en) * 2013-10-09 2015-04-09 Strongview Systems, Inc. System and method for managing message campaign data
US9836357B1 (en) 2014-04-25 2017-12-05 Veritas Technologies Llc Systems and methods for backing up heterogeneous virtual environments
US9703646B2 (en) * 2015-07-20 2017-07-11 Bank Of America Corporation Centralized database system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745669A (en) * 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608865A (en) 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
US6038639A (en) 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
US6460054B1 (en) * 1999-12-16 2002-10-01 Adaptec, Inc. System and method for data storage archive bit update after snapshot backup
US6421767B1 (en) 2000-02-23 2002-07-16 Storage Technology Corporation Method and apparatus for managing a storage system using snapshot copy operations with snap groups
US6948038B2 (en) * 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US7225204B2 (en) * 2002-03-19 2007-05-29 Network Appliance, Inc. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US6857053B2 (en) 2002-04-10 2005-02-15 International Business Machines Corporation Method, system, and program for backing up objects by creating groups of objects
US7085902B2 (en) * 2003-09-29 2006-08-01 International Business Machines Corporation Storage system with symmetrical mirroring

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745669A (en) * 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590633B1 (en) * 2002-03-19 2009-09-15 Netapp, Inc. Format for transmitting file system information between a source and a destination
US9767177B1 (en) * 2005-03-28 2017-09-19 Federal Home Loan Mortgage Corporation System and method for optimizing data recovery in a parallel database
US20060259527A1 (en) * 2005-05-13 2006-11-16 Devarakonda Murthy V Changed files list with time buckets for efficient storage management
US20080201366A1 (en) * 2005-05-13 2008-08-21 Devarakonda Murthy V Changed files list with time buckets for efficient storage management
US8548965B2 (en) 2005-05-13 2013-10-01 International Business Machines Corporation Changed files list with time buckets for efficient storage management
US8600940B2 (en) * 2007-12-21 2013-12-03 Symantec Operating Corporation Concurrently backing up data from multiple backup servers in a backup storage tier
US20090164530A1 (en) * 2007-12-21 2009-06-25 Joseph Milton Gilpin Concurrently Backing Up Data from Multiple Backup Servers in a Backup Storage Tier
US20110231698A1 (en) * 2010-03-22 2011-09-22 Zlati Andrei C Block based vss technology in workload migration and disaster recovery in computing system environment
US20150081993A1 (en) * 2013-09-13 2015-03-19 Vmware, Inc. Incremental backups using retired snapshots
US9772907B2 (en) * 2013-09-13 2017-09-26 Vmware, Inc. Incremental backups using retired snapshots

Also Published As

Publication number Publication date Type
US20050165867A1 (en) 2005-07-28 application
US7240171B2 (en) 2007-07-03 grant

Similar Documents

Publication Publication Date Title
You et al. Deep Store: An archival storage system architecture
US7596713B2 (en) Fast backup storage and fast recovery of data (FBSRD)
US6829688B2 (en) File system backup in a logical volume management data storage environment
US6654912B1 (en) Recovery of file system data in file servers mirrored file system volumes
US7069401B1 (en) Management of frozen images
US7617253B2 (en) Destination systems and methods for performing data replication
US7962709B2 (en) Network redirector systems and methods for performing data replication
US7636743B2 (en) Pathname translation in a data replication system
US7870355B2 (en) Log based data replication system with disk swapping below a predetermined rate
US7651593B2 (en) Systems and methods for performing data replication
US6981114B1 (en) Snapshot reconstruction from an existing snapshot and one or more modification logs
US5740434A (en) System for maintenance of database integrity
US7617262B2 (en) Systems and methods for monitoring application data in a data replication system
US7039663B1 (en) System and method for checkpointing and restarting an asynchronous transfer of data between a source and destination snapshot
US6021415A (en) Storage management system with file aggregation and space reclamation within aggregated files
US6560615B1 (en) Method and apparatus for implementing a highly efficient, robust modified files list (MFL) for a storage system volume
US7366859B2 (en) Fast incremental backup method and system
US20080243769A1 (en) System and method for exporting data directly from deduplication storage to non-deduplication storage
US7007046B2 (en) Format for transmission file system information between a source and a destination
US6366988B1 (en) Systems and methods for electronic data storage management
US20110004586A1 (en) System, method, and computer program product for creating a virtual database
US20050015416A1 (en) Method and apparatus for data recovery using storage based journaling
US7386752B1 (en) Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
US7415488B1 (en) System and method for redundant storage consistency recovery
US8180740B1 (en) System and method for eliminating duplicate data by generating data fingerprints using adaptive fixed-length windows