Performing backup operations and indexing backup data

Information

  • Patent Grant
  • 10990484
  • Patent Number
    10,990,484
  • Date Filed
    Friday, March 8, 2019
    5 years ago
  • Date Issued
    Tuesday, April 27, 2021
    3 years ago
Abstract
In certain embodiments, a tiered storage system is disclosed that provides for failover protection during data backup operations. The system can provide for an index, or catalog, for identifying and enabling restoration of backup data located on a storage device. The system further maintains a set of transaction logs generated by media agent modules that identify metadata with respect to individual data chunks of a backup file on the storage device. A copy of the catalog and transaction logs can be stored at a location accessible by each of the media agent modules. In this manner, in case of a failure of one media agent module during backup, the transaction logs and existing catalog can be used by a second media agent module to resume the backup operation without requiring a restart of the backup process.
Description
BACKGROUND
Field

The present disclosure relates to performing storage backup operations and, in particular, to systems and methods for providing failover during backup operations.


Description of the Related Art

Computers have become an integral part of business operations such that many banks, insurance companies, brokerage firms, financial service providers, and a variety of other businesses rely on computer networks to store, manipulate, and display information that is constantly subject to change. Oftentimes, the success or failure of an important transaction may turn on the availability of information that is both accurate and current. Accordingly, businesses worldwide recognize the commercial value of their data and seek reliable, cost-effective ways to protect the information stored on their computer networks.


To protect this stored data, network administrators can create backup copies of the stored information so that if the original data is destroyed or corrupted, the backup copy can be restored and used in place of the original data. For instance, the module storage architecture of the GALAXY backup system offered by CommVault Systems, Inc. (Oceanport, N.J.) advantageously provides for a multi-tiered storage management solution for backing up data. One drawback, however, with this and other conventional backup systems is that an interruption of the backup process can require the entire process to be restarted, thereby resulting in a loss of valuable time and resources, especially for large backup operations.


SUMMARY

In view of the foregoing, a need exists for improved systems and methods for performing backup operations. For example, there is a need for failover systems and methods for backing up data in a storage environment. In yet other embodiments, a need exists for load balancing between modules tasked with performing the backup operations and indexing the data such that when one module fails or is overloaded, another module can continue the process in place of the failed module.


In certain embodiments of the invention, a tiered storage system is disclosed that provides for failover protection during data backup operations. In certain embodiments, the system provides for an index, or catalog, for identifying and enabling restoration of backup data located on a storage device. The system further maintains a set of transaction logs generated by media agent modules that identify metadata with respect to individual data chunks of a backup file on the storage device. A copy of the catalog and transaction logs can be stored at a location accessible by each of the media agent modules. In this manner, in case of a failure of one media agent module during backup, the transaction logs and existing catalog can be used by a second media agent module to resume the backup operation without requiring a restart of the backup process.


In certain embodiments, a method is disclosed for performing a backup operation in a storage system. The method comprises: receiving with a first media agent module executing on a first computing device a plurality of data chunks to backed up on a storage device as a single backup file; storing a first data chunk of the plurality of data chunks in a backup format on the first storage device; generating a first transaction log comprising metadata of the first data chunk; transmitting the first transaction log to a second computing device; storing a second data chunk of the plurality of data chunks in the backup format on the first storage device; generating a second transaction log comprising metadata of the second data chunk; and transmitting the second transaction log to the second computing device, wherein said transmitting the first and second transaction logs is performed prior to the entire backup file being stored on the storage device.


In certain embodiments, a storage system is disclosed for performing backup operations in a network environment. The storage system includes a storage device, a first media agent module and an index. The storage device is configured to store backup data. The first media agent module executes on a first computing device and is communicatively coupled to the storage device. The first media agent module is also configured to direct first backup operations on the storage device. Then index is maintained on a second computing device and is indicative of at least locations of contents of the backup data stored on the storage device. Moreover, the first media agent is configured to: add data chunks to the backup data, the data chunks being part of a backup file to be stored on the storage device; for data each chunk added to the backup data on the storage device, generate a transaction log associated with the data chunk and comprising data for restoring one or more objects from the data chunk, and transmit the transaction logs to the second computing device prior to the entire backup file being stored on the storage device.


For purposes of summarizing the disclosure, certain aspects, advantages and novel features of the inventions have been described herein. It is to be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment of the invention. Thus, the invention may be embodied or carried out in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other advantages as may be taught or suggested herein.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates a block diagram of a backup system according to certain embodiments of the invention.



FIG. 2 illustrates a flow chart of an exemplary embodiment of a catalog creation process usable by the backup system of FIG. 1.



FIG. 3 illustrates a flow chart of an exemplary embodiment of a failover backup process usable by the backup system of FIG. 1.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

As will be seen from the disclosure herein, certain embodiments of systems and methods are provided for enabling failover during a backup operation. In particular, embodiments of the invention include creating a catalog, or index, of individual objects or files within backup data on a storage device. Inventive systems can also include media agent modules, or other backup components, that further generate a set of transaction logs that identify metadata with respect to new data objects being stored to the backup data. A copy of the catalog and transaction logs can be stored at a location accessible by multiple media agent modules. As a result, if one media agent fails during a backup operation, a second media agent can access the transaction logs and the existing catalog to resume the backup operation without requiring a restart of the backup process. Such embodiments can also provide means for enabling load balancing or like rotation of media agent modules in completing a common backup operation.


The features of the systems and methods will now be described with reference to the drawings summarized above. Throughout the drawings, reference numbers are re-used to indicate correspondence between referenced elements. The drawings, associated descriptions, and specific implementation are provided to illustrate embodiments of the invention and not to limit the scope of the disclosure.


In addition, methods and functions described herein are not limited to any particular sequence, and the acts or blocks relating thereto can be performed in other sequences that are appropriate. For example, described acts or blocks may be performed in an order other than that specifically disclosed, or multiple acts or blocks may be combined in a single act or block.



FIG. 1 illustrates a block diagram of a backup system 100, according to certain embodiments of the invention. In general, the backup system 100 comprises a modular (or tiered) architecture that provides for failover during a backup operation. For example, the backup system 100 can maintain a central catalog, or index, and one or more transaction logs usable to identify and/or restore backup data on a storage device.


As shown, the backup system 100 comprises at least one storage device 102 for storing backup data 104. The storage device 102 may include any type of media capable of storing electronic data, such as, for example, magnetic storage (such as a disk or a tape drive), optical media, or other type of mass storage. In certain embodiments, the storage device 102 can be part of a storage area network (SAN), a Network Attached Storage (NAS), a virtual machine disk, combinations of the same or the like.


In certain embodiments, the storage device(s) 102 may be implemented as one or more storage “volumes” that include physical storage disks defining an overall logical arrangement of storage space. For instance, disks within a particular volume may be organized as one or more groups of redundant arrays of independent (or inexpensive) disks (RAID). In certain embodiments, the storage device(s) 102 may include multiple storage devices of the same or different media.


Storage of the backup data 104 to the storage device 102 is performed by media agent modules or devices 106a and 106b (collectively referred to by reference numeral “106”). In general, the media agent devices 106 comprise storage controller computers that serve as intermediary devices and/or means for managing the flow of data from, for example, client information stores to individual storage devices. For instance, the media agent 106 can comprise a module that conducts data between one or more source devices, such as a client computing device, and the storage device(s) 102.


In certain embodiments, the media agents 106 store the backup data 104 on the storage device 102 as a plurality of data chunks. The terms “chunk” and “data chunk” as used herein are broad terms and are used in their ordinary sense and include, without limitation, a portion of data having a payload and encapsulated with metadata describing the contents of the payload placed in a tag header of the chunk. In certain embodiments, a chunk represents the smallest restorable component (e.g., 512 megabytes) of an archive or backup file.


In certain embodiments, the media agent 106 is communicatively coupled with and controls the storage device 102. For example, the media agent 106 may instruct the storage device 102 to use a robotic arm or other means to load or eject a media cartridge, and/or to archive, migrate, or restore application-specific data. In certain embodiments, the media agent 106 communicates with the storage device 102 via a local bus, such as a Small Computer System Interface (SCSI) adaptor. In some embodiments, the storage device 102 is communicatively coupled to the media agent 106 via a SAN.


Each media agent 106 can further maintain an index cache that stores index data generated during backup, migration, and restore operations as further described herein. Such index data provides the backup system 100 with an efficient and intelligent mechanism for locating backed up objects and/or files during restore or recovery operations. For example, the index data can include metadata such as file/object name(s), size, location, offset, checksum and the like of backup data 104 stored on the storage device 102.


Once a backup operation is complete, the index data is generally stored as an index 108 with the data backed up to the storage device 102. This advantageously facilitates access to the files and/or objects within the backup data when performing a restore operation. However, with conventional backup systems, in the event that there is a failure during backup of the data 104, a complete and accurate representation of the backed up data is not stored on the storage device 102. Thus, such failures oftentimes result in a restarting of the backup process and a re-creation of the index data.


To provide for failover during backup operations, the media agents 106 of the backup system 100 are further configured to generate one or more transaction logs for each data chunk backed up to the storage device 102. Such transaction logs can maintain similar information as entries of the index 108 (e.g., object name, size offset, length, checksum, time stamp, combinations of the same or the like). Once a particular data chunk is committed to, or stored on, the storage device 102, the corresponding transaction log(s) are uploaded or transmitted on-the-fly to a main index, or catalog, 110.


The catalog 110, in certain embodiments, represents a copy of the most recent index 108 stored with the backup data 104 on the storage device 102. Like the index 108, the catalog 110 entries contain sufficient information to restore one or more files or blocks from the last completed backup operation. When used in combination with uploaded transaction logs, the catalog 110 can be advantageously used to resume a backup operation that terminates prematurely or otherwise interrupted, such as from a failure of a media agent 106.


The catalog 110 is advantageously accessible to each of the media agents 106 such that if a first media agent (e.g., media agent 106a) fails while performing a backup operation, a second media agent (e.g., media agent 106b) can access the catalog 110 and resume the backup operation in place of the first media agent. For instance, in certain embodiments, the catalog 110 can be stored on a server or other computing device separate from the media agents 106. In yet other embodiments, the catalog 110 can be maintained by a storage manager 112. It will also be appreciated that catalog 110 can represent a computing device, such as a server computer, that maintains the catalog or index.


In certain embodiments, the storage manager 112 comprises a module or application that coordinates and controls storage, migration, recovery and/or restore operations within the backup system 100. For instance, such operations can be based on one or more storage policies, schedules, user preferences or the like. As shown, the storage manager 112 can communicate with each of the media agents 106 and the catalog 110. In yet further embodiments, the storage manager 112 can communicate with the storage device(s) 102.


Although the backup system 100 is shown and described with respect to particular arrangements, it will be understood from the disclosure herein that other embodiments of the invention can take on different configurations. For instance, the backup system 100 can comprise a plurality of media agent modules or devices that each communicate with one or more storage devices and/or one or more client devices.


Furthermore, components of the backup system 100 can also communicate with each other via a computer network. For example, the network may comprise a public network such as the Internet, virtual private network (VPN), token ring or TCP/IP based network, wide area network (WAN), local area network (LAN), an intranet network, point-to-point link, a wireless network, cellular network, wireless data transmission system, two-way cable system, interactive kiosk network, satellite network, broadband network, baseband network, combinations of the same or the like.



FIG. 2 illustrates a flow chart of a catalog creation process 200 according to certain embodiments of the invention. For instance, the process 200 can be advantageously used to maintain a catalog or main index of metadata usable to restore backed up data and resume a backup operation following a premature failure of a backup component. For exemplary purposes, the process 200 will be described with reference to the components of the backup system 100 of FIG. 1.


At Block 205, the process 200 begins a backup operation performed by a media agent device 106. For example, the storage manager 112 may instruct the media agent device 106 to backup data relating to one or more applications executing on one or more client computing devices. As discussed, in certain embodiments, the media agent 106a stores the backup data 104 on the storage device 102 in a chunk-by-chunk manner.


In certain embodiments, the media agent device 106 receives the data to be backed up from one or more data agents operating on a client device. In certain examples, the data can comprise application-specific data or can include data streams with multiple data types or objects contained therein.


At Block 210, the media agent device 106 processes a data chunk of the received data to be backed up. In certain embodiments, such processing includes generating metadata indicative of the contents and/or attributes of the objects within the data chunk or of the data chunk itself, as well as information regarding the storage location of such objects or files on the storage device 102 (e.g., with the backup data 104).


The media agent device 106 then backs up the data chunk to the backup file 104 on the storage device 102 (Block 215). The media agent device 106 also uploads one or more transaction logs to the catalog 110 that contain the above-described metadata for the backed up data chunk (Block 220). In certain embodiments, a single transaction log corresponds to a single data chunk.


At Block 225, the process 200 determines if there are additional data chunks as part of the backup operation. If so, the process 200 returns to Block 210 to process the next data chunk. If not, the process 200 proceeds with Block 230 to store the index 108 with the backup data 104. In certain embodiments, the index 108 allows for restoring individual objects and/or files from the backup data 104. The process 200 also includes applying the uploaded transaction logs to the catalog 110 so that the catalog 110 contains up-to-date information reflecting the contents of the entire backup file 104 (Block 235).


It will be appreciated that the process 200 is not limited to the arrangement of blocks illustrated in FIG. 2. For example, in other embodiments, the transaction log(s) may be uploaded (Block 220) prior to, or concurrent with, the storage of the corresponding data chunks on the storage device 102.



FIG. 3 illustrates a flow chart of a failover backup process 300 according to certain embodiments of the invention. For instance, the process 300 can be used to transfer control of a backup operation from a first storage controller component to a second storage controller component, such as during a failure or for load balancing. In certain embodiments, the process 300 illustrates a failover method that is possible in a system utilizing the catalog creation process 200 of FIG. 2. For exemplary purposes, the process 300 will be described hereinafter with reference to the components of the backup system 100 of FIG. 1.


The process 300 begins at Block 305 by initiating a backup operation with the first media agent 106a. At Block 310, the process 300 detects a failure of the first media agent 106a. For instance, in certain embodiments, the storage manager 112 can detect that the first media agent 106a has prematurely ceased performing the backup operation. In one embodiment, the failure of the first media agent 112 causes the backup operation to fail, and during the next system restart, the storage manager 112 detects the failure of the first media agent 106a.


Upon detecting failure of the first media agent 106a, the process 300 obtains a copy of the index associated with the last complete backup (Block 315). For example, the storage manager 112 can instruct the second media agent 106b to retrieve a copy of the index 108 from the storage device 102, the catalog 110 (or a computing device maintaining the catalog 110) or the like. In certain embodiments, the retrieved index contains information for retrieving objects and/or files that were stored on the storage device 102 prior to the commencement of the current backup operation (e.g., the most recently completed full backup).


At Block 320, the second media agent 106b also retrieves a copy of the transaction log(s) associated with the interrupted backup operation by the first media agent 106a. In certain embodiments, the transaction logs are stored on the catalog server 110 as a result of Block 220 of the process 200. For instance, the storage manager 112 may instruct that the transaction logs be sent to the second media agent 106b along with instructions to the second media agent 106b to take over the interrupted backup operation.


At Block 325, the second media agent 106b applies the transaction logs to the retrieved index to the point that reflects where in the backup process the first media agent 106a failed. The second media agent 106b is then able to resume the backup operation without needing to repeat the backup of data that was performed by the first media agent 106a (Block 330). For instance, the second media agent 106b can continue backing up the data according to the process 200 depicted in FIG. 2.


Although the process 300 has been described with respect to detecting a failure of a media agent device, other embodiments of the invention can utilize similar steps to achieve load balancing or other selective use of multiple media agents during a single backup operation. For example, at Block 310, the storage manager 112 or other component can determine if the first media agent 106a is operating under unbalanced and/or excessive load. Such an embodiment allows for the second media agent 106b to take over the backup operation prior to a failure of the first media agent 106a. For instance, the storage manager 112 can monitor bandwidth usage, a jobs queue and/or a schedule of the first media agent 106a to evaluate its load.


In certain embodiments of the invention, the backup operations disclosed herein can be used to copy data of one or more applications residing on and/or being executed by a computing device. For instance, the applications may comprise software applications that interact with a user to process data and may include, for example, database applications (e.g., SQL applications), word processors, spreadsheets, financial applications, management applications, e-commerce applications, browsers, combinations of the same or the like. For example, in certain embodiments, the applications may comprise one or more of the following: MICROSOFT EXCHANGE, MICROSOFT SHAREPOINT, MICROSOFT SQL SERVER, ORACLE, MICROSOFT WORD and LOTUS NOTES.


Moreover, in certain embodiments of the invention, data backup systems and methods may be used in a modular storage management system, embodiments of which are described in more detail in U.S. Pat. No. 7,035,880, issued Apr. 5, 2006, and U.S. Pat. No. 6,542,972, issued Jan. 30, 2001, each of which is hereby incorporated herein by reference in its entirety. For example, the disclosed backup systems may be part of one or more storage operation cells that includes combinations of hardware and software components directed to performing storage operations on electronic data. Exemplary storage operation cells usable with embodiments of the invention include CommCells as embodied in the QNet storage management system and the QiNetix storage management system by CommVault Systems, Inc., and as further described in U.S. Pat. No. 7,454,569, issued Nov. 18, 2008, which is hereby incorporated herein by reference in its entirety.


Systems and modules described herein may comprise software, firmware, hardware, or any combination(s) of software, firmware, or hardware suitable for the purposes described herein. Software and other modules may reside on servers, workstations, personal computers, computerized tablets, PDAs, and other devices suitable for the purposes described herein. Software and other modules may be accessible via local memory, via a network, via a browser, or via other means suitable for the purposes described herein. Data structures described herein may comprise computer files, variables, programming arrays, programming structures, or any electronic information storage schemes or methods, or any combinations thereof, suitable for the purposes described herein. User interface elements described herein may comprise elements from graphical user interfaces, command line interfaces, and other interfaces suitable for the purposes described herein.


Embodiments of the invention are also described above with reference to flow chart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flow chart illustrations and/or block diagrams, and combinations of blocks in the flow chart illustrations and/or block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the acts specified in the flow chart and/or block diagram block or blocks.


These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the acts specified in the flow chart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the acts specified in the flow chart and/or block diagram block or blocks.


While certain embodiments of the inventions have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure.

Claims
  • 1. A storage system for generating and indexing backup data, the storage system comprising: a first computing device comprising one or more hardware processors and computer memory;a second computing device comprising one or more hardware processors and computer memory;wherein the first computing device is configured to: at a first time, perform a first backup operation,wherein the first backup operation generates first backup data as a plurality of data chunks and stores the first backup data on one or more storage devices that are communicatively coupled to the first computing device,generate one or more first transaction logs based on the first backup operation,wherein for each data chunk within the first backup data, a corresponding first transaction log comprises metadata about the data chunk, andafter a data chunk within the first backup data is stored on the one or more storage devices, transmit a corresponding one of the one or more first transaction logs to the second computing device, which maintains an index,wherein the index is configured to enable restoring backup files generated by at least the first backup operation, including restoring first backup files within the first backup data,wherein after terminating prematurely before completion, the first backup operation resumes based on using the index in combination with the one or more first transaction logs, andwherein the first backup operation resumes without restarting and without re-creating the one or more first transaction logs that were created before the terminating prematurely; andwherein the second computing device is configured to: at a second time after the first time, update the index by applying the one or more first transaction logs to the index.
  • 2. The storage system of claim 1, wherein the second computing device is further configured to, at a third time, cause a copy of the index to be created.
  • 3. The storage system of claim 1, wherein the index is further configured to indicate locations of data chunks of the first backup files in the first backup data.
  • 4. The storage system of claim 1, wherein the index is accessible by a plurality of computing devices configured to perform backup operations in the storage system, including by the first computing device.
  • 5. The storage system of claim 1, wherein the index is stored to at least one of: the second computing device, and a second storage device associated with the second computing device and distinct from the one or more storage devices that are communicatively coupled to the first computing device and where the first backup data is stored.
  • 6. The storage system of claim 1 further comprising a third computing device comprising hardware processors and computer memory; and wherein the third computing device is configured to:at a third time, perform a second backup operation that generates second backup data and stores the second backup data to one or more storage devices that are communicatively coupled to the third computing device,generate one or more second transaction logs based on the second backup operation, andat a fourth time, transmit the one or more second transaction logs to the second computing device comprising the index, which is further configured to enable restoring backup files generated by at least the second backup operation, including restoring second backup files within the second backup data; andwherein the second computing device is configured to further update the index by applying the one or more second transaction logs to the index.
  • 7. A method for generating and indexing backup data in a storage system, the method comprising: generating first backup data, by a first media agent executing on a first computing device, wherein the first computing device comprises one or more hardware processors;by the first media agent, storing the first backup data to one or more storage devices that are communicatively coupled to the first media agent;by the first media agent, generating one or more first transaction logs, wherein each of the one or more first transaction logs is based on storing a corresponding data chunk of the first backup data to the one or more storage devices, and wherein each of the one or more first transaction logs comprises indexing information about the corresponding data chunk;by the first media agent, after storing a given data chunk to the one or more storage devices, transmitting a corresponding one of the one or more first transaction logs to a second computing device, which maintains an index configured to enable restoring data chunks of the first backup data;wherein the second computing device, which comprises one or more hardware processors, updates the index by applying the one or more first transaction logs to the index after the first backup data is generated; andwherein after terminating prematurely before completion, a first backup operation resumes based on using the index in combination with the one or more first transaction logs, and wherein the first backup operation resumes without restarting and without re-creating the one or more first transaction logs that were created before the terminating prematurely.
  • 8. The method of claim 7, wherein the index is further configured to indicate storage locations of contents of the first backup data stored on the one or more storage devices that are communicatively coupled to the first media agent.
  • 9. The method of claim 7, wherein the index is further configured to indicate storage locations of data chunks of the first backup data stored on the one or more storage devices that are communicatively coupled to the first media agent.
  • 10. The method of claim 7, wherein the index is further configured to identify individual data objects within the first backup data.
  • 11. The method of claim 7 further comprising: by the second computing device, causing the index to be copied after updating the index by applying the one or more first transaction logs.
  • 12. The method of claim 11 wherein the first backup data is generated at a first time, and wherein the second computing device causes the index to be copied at a second time after the first backup data is generated.
  • 13. The method of claim 7, wherein the one or more first transaction logs comprise metadata for the first backup data, including, in regard to data chunks that are parts of the first backup data, respective storage locations thereof at the one or more storage devices that are communicatively coupled to the first media agent.
  • 14. The method of claim 7 further comprising: by the first media agent, when receiving instructions to restore all or part of the first backup data, using the index to determine a storage location of the first backup data at the one or more storage devices that are communicatively coupled to the first media agent.
CROSS-REFERENCE TO RELATED APPLICATIONS

Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet, or any correction thereto, are hereby incorporated by reference under 37 CFR 1.57. The present application is continuation of U.S. patent application Ser. No. 15/684,410 filed Aug. 23, 2017, which is a continuation of U.S. patent application Ser. No. 14/675,524 filed Mar. 31, 2015, which is a continuation of U.S. patent application Ser. No. 13/958,353 filed Aug. 2, 2013, which is a continuation of U.S. patent application Ser. No. 12/982,165 filed Dec. 30, 2010, which claims the benefit of priority under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 61/351,790, filed on Jun. 4, 2010, and entitled “FAILOVER SYSTEMS AND METHODS FOR PERFORMING BACKUP OPERATIONS,” each of which is hereby incorporated herein by reference in its entirety.

US Referenced Citations (231)
Number Name Date Kind
4084231 Capozzi et al. Apr 1978 A
4267568 Dechant et al. May 1981 A
4283787 Chambers Aug 1981 A
4417321 Chang et al. Nov 1983 A
4641274 Swank Feb 1987 A
4654819 Stiftler et al. Mar 1987 A
4686620 Ng Aug 1987 A
4912637 Sheedy et al. Mar 1990 A
4995035 Cole et al. Feb 1991 A
5005122 Griffin et al. Apr 1991 A
5093912 Dong et al. Mar 1992 A
5133065 Cheffetz et al. Jul 1992 A
5193154 Kitajima et al. Mar 1993 A
5212772 Masters May 1993 A
5226157 Nakano et al. Jul 1993 A
5239647 Anglin et al. Aug 1993 A
5241668 Eastridge Aug 1993 A
5241670 Eastridge et al. Aug 1993 A
5276860 Fortier et al. Jan 1994 A
5276867 Kenley et al. Jan 1994 A
5287500 Stoppani, Jr. Feb 1994 A
5301286 Rajani Apr 1994 A
5321816 Rogan et al. Jun 1994 A
5347653 Flynn et al. Sep 1994 A
5410700 Fecteau et al. Apr 1995 A
5420996 Aoyagi May 1995 A
5454099 Myers et al. Sep 1995 A
5544359 Tada et al. Aug 1996 A
5548750 Larsson et al. Aug 1996 A
5559991 Kanfi Sep 1996 A
5638509 Dunphy et al. Jun 1997 A
5640561 Satoh et al. Jun 1997 A
5642496 Kanfi Jun 1997 A
6078932 Haye Jun 2000 A
6175904 Gunderson Jan 2001 B1
6185474 Nakamura et al. Feb 2001 B1
6272631 Thomlinson et al. Aug 2001 B1
6418478 Ignatius et al. Jul 2002 B1
6542972 Ignatius et al. Apr 2003 B2
6658436 Oshinsky et al. Dec 2003 B2
6704839 Butterworth et al. Mar 2004 B2
6721767 De Meno et al. Apr 2004 B2
6732124 Koseki et al. May 2004 B1
6760723 Oshinsky et al. Jul 2004 B2
6769003 Park et al. Jul 2004 B2
6795904 Kamvysselis Sep 2004 B1
7003641 Prahlad et al. Feb 2006 B2
7035880 Crescenti et al. Apr 2006 B1
7065537 Cha et al. Jun 2006 B2
7107298 Prahlad et al. Sep 2006 B2
7130970 Devassy et al. Oct 2006 B2
7143121 Mendonca et al. Nov 2006 B2
7162496 Amarendran et al. Jan 2007 B2
7174433 Kottomtharayil et al. Feb 2007 B2
7178059 Greenspan et al. Feb 2007 B2
7209972 Ignatius et al. Apr 2007 B1
7234073 Roytman et al. Jun 2007 B1
7246207 Kottomtharayil et al. Jul 2007 B2
7249150 Watanabe et al. Jul 2007 B1
7315923 Retnamma et al. Jan 2008 B2
7315924 Prahlad et al. Jan 2008 B2
7318134 Oliveira et al. Jan 2008 B1
7343453 Prahlad et al. Mar 2008 B2
7380072 Kottomtharayil et al. May 2008 B2
7389311 Crescenti et al. Jun 2008 B1
7395282 Crescenti et al. Jul 2008 B1
7401154 Ignatius et al. Jul 2008 B2
7409509 Devassy et al. Aug 2008 B2
7424519 Hoshino et al. Sep 2008 B2
7437388 DeVos Oct 2008 B1
7440982 Lu et al. Oct 2008 B2
7447692 Oshinsky et al. Nov 2008 B2
7454569 Kavuri et al. Nov 2008 B2
7484054 Kottomtharayil et al. Jan 2009 B2
7490207 Amarendran et al. Feb 2009 B2
7500053 Kavuri et al. Mar 2009 B1
7529782 Prahlad et al. May 2009 B2
7536291 Retnamma et al. May 2009 B1
7543125 Gokhale Jun 2009 B2
7546324 Prahlad et al. Jun 2009 B2
7581077 Ignatius et al. Aug 2009 B2
7594138 Abdulvahid Sep 2009 B2
7596721 Flake et al. Sep 2009 B1
7600125 Stringham Oct 2009 B1
7603386 Amarendran et al. Oct 2009 B2
7606844 Kottomtharayil Oct 2009 B2
7613748 Brockway et al. Nov 2009 B2
7613752 Prahlad et al. Nov 2009 B2
7617253 Prahlad et al. Nov 2009 B2
7617262 Prahlad et al. Nov 2009 B2
7620710 Kottomtharayil et al. Nov 2009 B2
7636743 Erofeev Dec 2009 B2
7651593 Prahlad et al. Jan 2010 B2
7657550 Prahlad et al. Feb 2010 B2
7660807 Prahlad et al. Feb 2010 B2
7661028 Erofeev Feb 2010 B2
7707184 Zhang et al. Apr 2010 B1
7739459 Kottomtharayil et al. Jun 2010 B2
7747579 Prahlad et al. Jun 2010 B2
7757043 Kavuri et al. Jul 2010 B2
7769961 Kottomtharayil et al. Aug 2010 B2
7801864 Prahlad et al. Sep 2010 B2
7802067 Prahlad et al. Sep 2010 B2
7809914 Kottomtharayil et al. Oct 2010 B2
8051473 Szucs Nov 2011 B2
8108640 Holl, II Jan 2012 B1
8131681 Hangud et al. Mar 2012 B1
8156086 Lu et al. Apr 2012 B2
8170995 Prahlad et al. May 2012 B2
8195623 Prahlad et al. Jun 2012 B2
8204859 Ngo Jun 2012 B2
8229954 Kottomtharayil et al. Jul 2012 B2
8230195 Amarendran et al. Jul 2012 B2
8271443 Swift et al. Sep 2012 B1
8285681 Prahlad et al. Oct 2012 B2
8291170 Zhang et al. Oct 2012 B1
8291407 Greenwood et al. Oct 2012 B2
8307177 Prahlad et al. Nov 2012 B2
8336040 Davidson et al. Dec 2012 B2
8364652 Vijayan et al. Jan 2013 B2
8370542 Lu et al. Feb 2013 B2
8504526 Gokhale et al. Aug 2013 B2
8650389 Thornewell et al. Feb 2014 B1
8793222 Stringham Jul 2014 B1
8930496 Gokhale Jan 2015 B2
9020987 Nanda et al. Apr 2015 B1
9026497 Gokhale et al. May 2015 B2
9244777 Boullery et al. Jan 2016 B2
9483361 Gokhale et al. Nov 2016 B2
9483362 Gokhale et al. Nov 2016 B2
9483363 Gokhale et al. Nov 2016 B2
9483364 Gokhale et al. Nov 2016 B2
9563518 Klose Feb 2017 B2
9811427 Klose Nov 2017 B2
10001935 Gokhale et al. Jun 2018 B2
10013314 Klose Jul 2018 B2
10073649 DeJong et al. Sep 2018 B2
10365839 Gokhale et al. Jul 2019 B2
10534672 Klose Jan 2020 B2
10534673 Gokhale et al. Jan 2020 B2
10838824 Klose Nov 2020 B2
10884635 Gokhale et al. Jan 2021 B2
20020178143 Fujimoto Nov 2002 A1
20030021223 Kashyap Jan 2003 A1
20030163495 Lanzatella et al. Aug 2003 A1
20030182301 Patterson et al. Sep 2003 A1
20030182329 Sato Sep 2003 A1
20030236956 Grubbs et al. Dec 2003 A1
20040019892 E. et al. Jan 2004 A1
20040044642 Fujii et al. Mar 2004 A1
20040139127 Pofelski Jul 2004 A1
20040153823 Ansari Aug 2004 A1
20040250033 Prahlad et al. Dec 2004 A1
20040267838 Curran et al. Dec 2004 A1
20040268175 Koch et al. Dec 2004 A1
20050039069 Prahlad et al. Feb 2005 A1
20050044114 Kottomtharayil et al. Feb 2005 A1
20050131996 Mastrianni et al. Jun 2005 A1
20050138461 Allen Jun 2005 A1
20050183072 Horning et al. Aug 2005 A1
20050187891 Johnson et al. Aug 2005 A1
20050216788 Mani-Meitav Sep 2005 A1
20050262316 Obayashi et al. Nov 2005 A1
20050268156 Mashayekhi et al. Dec 2005 A1
20050278397 Clark Dec 2005 A1
20060026452 Suzuki et al. Feb 2006 A1
20060085672 Watanabe Apr 2006 A1
20060155594 Almeida et al. Jul 2006 A1
20060206547 Kulkarni et al. Sep 2006 A1
20060224846 Amarendran et al. Oct 2006 A1
20060236054 Kitamura et al. Oct 2006 A1
20070074068 Hsieh Mar 2007 A1
20070094467 Yamasaki Apr 2007 A1
20070094533 Coombs et al. Apr 2007 A1
20070156793 D'Souza Jul 2007 A1
20070185938 Prahlad Aug 2007 A1
20070186068 Agrawal Aug 2007 A1
20070226535 Gokhale Sep 2007 A1
20070234108 Cox Oct 2007 A1
20070250365 Chakrabarti et al. Oct 2007 A1
20070271471 Merzlikine et al. Nov 2007 A1
20070282921 Atluri et al. Dec 2007 A1
20070283355 Misono et al. Dec 2007 A1
20070299930 Wendelrup et al. Dec 2007 A1
20080022058 Nadathur et al. Jan 2008 A1
20080059704 Kavuri Mar 2008 A1
20080098049 Pillai et al. Apr 2008 A1
20080147754 Littlefield Jun 2008 A1
20080201600 Lu Aug 2008 A1
20080228833 Kano Sep 2008 A1
20080244204 Cremelie et al. Oct 2008 A1
20080253283 Douglis et al. Oct 2008 A1
20080270488 Ozawa Oct 2008 A1
20080307020 Ko et al. Dec 2008 A1
20090037763 Adhya et al. Feb 2009 A1
20090055507 Oeda Feb 2009 A1
20090077557 Ichikawa Mar 2009 A1
20090183145 Hu et al. Jul 2009 A1
20090319534 Gokhale Dec 2009 A1
20100017444 Chatterjee et al. Jan 2010 A1
20100082672 Kottomtharayil Apr 2010 A1
20100094981 Cordray Apr 2010 A1
20100101300 Rigby et al. Apr 2010 A1
20100162037 Maule et al. Jun 2010 A1
20100281458 Paladino et al. Nov 2010 A1
20100293439 Flynn et al. Nov 2010 A1
20100299490 Attarde et al. Nov 2010 A1
20110154109 Levine Jun 2011 A1
20110218967 Sliger et al. Sep 2011 A1
20110234583 Bakalash Sep 2011 A1
20120101999 Scherzinger et al. Apr 2012 A1
20120150818 Vijayan Retnamma et al. Jun 2012 A1
20120150826 Vijayan Retnamma et al. Jun 2012 A1
20120150949 Vijayan Retnamma et al. Jun 2012 A1
20130238562 Kumarasamy et al. Sep 2013 A1
20140101300 Rosensweig et al. Apr 2014 A1
20140143636 Frost et al. May 2014 A1
20150067391 Merchant et al. Mar 2015 A1
20150205682 Gokhale et al. Jul 2015 A1
20150268876 Ahn et al. Sep 2015 A1
20150370668 Nazari et al. Dec 2015 A1
20160226966 Lin Aug 2016 A1
20170265648 Klose Aug 2017 A1
20180074914 Gokhale et al. Mar 2018 A1
20180373601 Klose Dec 2018 A1
20190026035 Gokhale et al. Jan 2019 A1
20190205217 Gokhale et al. Jul 2019 A1
20190258411 Gokhale et al. Aug 2019 A1
20190370107 Subburasu et al. Dec 2019 A1
20200159627 Bedadala et al. May 2020 A1
20200183802 Rathi et al. Jun 2020 A1
Foreign Referenced Citations (29)
Number Date Country
2004227949 Oct 2004 AU
2498174 Mar 2004 CA
69415115 Aug 1999 DE
60020978 Apr 2006 DE
0259912 Mar 1988 EP
0405926 Jan 1991 EP
0467546 Jan 1992 EP
0541281 May 1993 EP
0645709 Mar 1995 EP
0774715 May 1997 EP
0809184 Nov 1997 EP
0899662 Mar 1999 EP
0981090 Feb 2000 EP
1 209 569 May 2002 EP
1204922 May 2002 EP
1384135 Jan 2004 EP
1387269 Feb 2004 EP
1393181 Mar 2004 EP
1533701 May 2005 EP
1 938 192 Nov 2009 EP
2447361 Sep 2008 GB
4198050 Dec 2008 JP
4267443 May 2009 JP
WO 1995013580 May 1995 WO
WO 1999012098 Mar 1999 WO
WO 2004023317 Mar 2004 WO
WO2005050449 Jun 2005 WO
WO 2006052872 May 2006 WO
WO2010140264 Dec 2010 WO
Non-Patent Literature Citations (8)
Entry
Deepavali Bhagwatetal., “Extreme Binning: Scalable, Parallel Deduplication for Chunk-based File Backup”, IEEE International Symposium on Modeling, Analysis & Simulation of Computer and Telecommunication Systems, Sep. 2009, pp. 1-9.
Qun Li et al., “Research on the Backup Mechanism of Oracle Database” International Conference on Environmental Science and Information Application Technology, Jul. 2009, pp. 423-426.
Arneson, “Mass Storage Archiving in Network Environments” IEEE, 1998, pp. 45-50.
Cabrera, et al. “ADSM: A Multi-Platform, Scalable, Back-up and Archive Mass Storage System,” Digest of Papers, Compcon '95, Proceedings of the 40th IEEE Computer Society International Conference, Mar. 5, 1995-Mar. 9, 1995, pp. 420-427, San Francisco, CA.
Eitel, “Backup and Storage Management in Distributed Heterogeneous Environments,” IEEE, 1994, pp. 124-126.
Eliezer et al., “Log-Driven Backups: A Recovery Scheme for Large Memory Database Systems”, IEEE 1990, pp. 99-109.
IBM Technical Disclosure Bulletin, vol. 24, No. 5, Oct. 1981 New York, US, pp. 2404-2406, K.L. Huff, “Data Set Usage Sequence Number”.
Rosenblum et al., “The Design and Implementation of a Log-Structure File System,” Operating Systems Review Sigops, vol. 25, No. 5, New York, US, pp. 1-15 (May 1991).
Related Publications (1)
Number Date Country
20190205216 A1 Jul 2019 US
Provisional Applications (1)
Number Date Country
61351790 Jun 2010 US
Continuations (4)
Number Date Country
Parent 15684410 Aug 2017 US
Child 16297437 US
Parent 14675524 Mar 2015 US
Child 15684410 US
Parent 13958353 Aug 2013 US
Child 14675524 US
Parent 12982165 Dec 2010 US
Child 13958353 US