US20100262797A1 - Virtual machine data backup - Google Patents
Virtual machine data backup Download PDFInfo
- Publication number
- US20100262797A1 US20100262797A1 US12/758,245 US75824510A US2010262797A1 US 20100262797 A1 US20100262797 A1 US 20100262797A1 US 75824510 A US75824510 A US 75824510A US 2010262797 A1 US2010262797 A1 US 2010262797A1
- Authority
- US
- United States
- Prior art keywords
- file
- accordance
- data
- datablock
- block
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000013144 data compression Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Definitions
- the present disclosure relates to computer data backup, and in particular, to a system and method for performing block-level backups of virtual machine, wherein backed up data is stored in de-duplicated form in a hierarchical directory structure.
- data backup is a critical component of computer-based systems.
- the term “backup” may refer to the act of creating copies of data, and may refer to the actual backed-up copy of the original data.
- the original data typically resides on a hard drive, or on an array of hard drives, but may also reside on other forms of storage media, such as solid state memory.
- Data backups are necessary for several reasons, including disaster recovery, restoring data lost due to storage media failure, recovering accidentally deleted data, and repairing corrupted data resulting from malfunctioning or malicious software.
- a virtual machine is a software abstraction of an underlying physical (i.e., hardware) machine which enables one or more instances of an operating system, or even one or more operating systems, to run concurrently on a physical host machine.
- Virtual machines have become popular with administrators of data centers, which can contain dozens, hundreds, or even thousands of physical machines.
- the use of virtual servers greatly simplifies the task of configuring and administering servers in a large scale environment, because a virtual machine may be quickly placed into service without incurring the expense of provisioning a hardware machine at a data center.
- Virtualization is highly scalable, enabling servers to be allocated or deallocated in response to changes in demand. Support and administration requirements may be reduced because virtual servers are readily monitored and accessed using remote administration tools and diagnostic software.
- a virtual server consists of three components.
- the first component is virtualization software configured to run on the host machine which performs the hardware abstraction, often referred to as a hypervisor.
- the second component is a data file which represents the filesystem of the virtual machine, which typically contains the virtual machine's operating system, applications, data files, etc.
- a virtual machine data file may be a hard disk image file, such as, without limitation, a Virtual Machine Disk Format (VMDK) format file.
- VMDK Virtual Machine Disk Format
- the third component is the physical machine on which the virtualization software executes.
- a physical machine may include a processor, random-access memory, internal or external disk storage, and input/output interfaces, such as network, storage, and desktop interfaces (e.g., keyboard, pointing device, and graphic display interfaces.)
- the disclosed method processes 1 MB fixed-length blocks of data of a virtual machine file.
- a unique identifier such as without limitation, an MD5 hash, is created for this block data.
- the 1 MB of data can be compressed, or left uncompressed.
- the 1 MB of data is stored as a single file.
- the file name is the MD5 hash value of the 1 MB data block.
- the hash of this file is saved to a separate index file for later use to retrieve, validate, and rebuild the backup data.
- the data blocks, whether in compressed or uncompressed form are stored at a storage destination, in a unique directory structure consisting of 256 first level directories designated as 00-FF, each having 256 second level directories designated as 00-FF within, comprising 65,536 directories in total.
- the 1 MB compressed (or uncompressed) data files are stored in the directory structure based on the first four bytes of the hash, e.g.,
- the first four bytes of data for the file name are “0022”.
- the file is stored in directory “./00/22/”.
- the .gz extension indicates the file is compressed.
- Subsequent backups are performed having as a destination the same storage location.
- Data blocks are generated using the above unique hash.
- a file query is made to the storage location to see if there is already a file existing with the same hash. If the file does not exist, the source data is written into the directory hierarchy with the hash as the file name and an index file is updated. If the file exists, then only the index file is updated for the current backup being run.
- the directory structure will accumulate data blocks from all backups sent thereto.
- a separate index file is created for each backup, and is used to keep track of the blocks of data for, e.g., re-assembling data block of the original source during restoration.
- a hash also provides a self-checking mechanism which enables self-validation of the data within the stored file.
- a routine is scheduled to run on an ad-hoc or periodic basis that reads the data within a stored file, and validates the data in the file to verify a match to the hash file name. If the data does not match, the block is considered suspect, and is slated to be deleted. All associated backups that include this data block are flagged as “bad”.
- the index file corresponding to backups so flagged may additionally or alternatively include a “bad” flag.
- the data blocks may be evaluated to determine whether the data contained therein exhibits a predefined (“special”) data pattern.
- a special data pattern may include a particular or repeating pattern, e.g., a data block consisting entirely of zero (00H) bytes.
- a special hash is generated that represents the special data block containing the particular data pattern.
- the special hash may be hard-coded, defined in a database, and/or defined in a configuration file. Since the contents of a special data block is predefined, it is only necessary to record the fact that the data block is special. It is unnecessary to store the actual contents of a special block.
- the index file is updated accordingly and the backup proceeds.
- special blocks e.g., null blocks
- do not consume space on the storage device do not use communication bandwidth during backup and restoration procedures, do not require as much computational resources, and so forth.
- This provides an efficient way to skip special (e.g., null) data in a given backup set.
- a method for backing up computer data includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize.
- a unique block identifier relating to the contents of a fixed size block is generated.
- On a destination storage device a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier.
- a datablock file representative of the fixed size block is stored in a corresponding second level directory.
- machine-readable media comprising a set of instructions configured to perform a method for backing up computer data that includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize.
- a unique block identifier relating to the contents of a fixed size block is generated.
- On a destination storage device a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier.
- a datablock file representative of the fixed size block is stored in a corresponding second level directory.
- a system for performing data backup that includes a processor, a storage device operably coupled to the processor, and a data backup module.
- the data backup module including a set of instructions executable on the processor for performing a method of data backup.
- the method includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize.
- a unique block identifier relating to the contents of a fixed size block is generated.
- On a destination storage device a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier.
- a datablock file representative of the fixed size block is stored in a corresponding second level directory.
- FIG. 1 shows a block diagram of an embodiment of a virtual machine backup system in accordance with the present disclosure
- FIG. 2 is a flowchart of an embodiment of a virtual machine backup method in accordance with the present disclosure
- FIG. 3 is a block diagram illustrating a directory hierarchy of an embodiment of a virtual machine backup in accordance with the present disclosure.
- FIG. 4 is a flow diagram of an embodiment of a virtual machine backup in accordance with the present disclosure.
- the present invention may be described herein in terms of functional block components, code listings, optional selections, page displays, and various processing steps. It should be appreciated that such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions.
- the present invention may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
- the software elements of the present invention may be implemented with any programming or scripting language such as C, C++, C#, Java, COBOL, assembler, PERL, Python, PHP, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements.
- the object code created may be executed by any computer having an Internet Web Browser, on a variety of operating systems including Windows, Macintosh, and/or Linux.
- the present invention may employ any number of conventional techniques for data transmission, signaling, data processing, network control, and the like.
- the present invention may be embodied as a method, a data processing system, a device for data processing, and/or a computer program product. Accordingly, the present invention may take the form of an entirely software embodiment, an entirely hardware embodiment, or an embodiment combining aspects of both software and hardware. Furthermore, the present invention may take the form of a computer program product on a computer-readable storage medium having computer-readable program code means embodied in the storage medium. Any suitable computer-readable storage medium may be utilized, including hard disks, CD-ROM, DVD-ROM, optical storage devices, magnetic storage devices, semiconductor storage devices (e.g., USB thumb drives) and/or the like.
- 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 function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart 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 operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
- any databases, systems, or components of the present invention may consist of any combination of databases or components at a single location or at multiple locations, wherein each database or system includes any of various suitable security features, such as firewalls, access codes, encryption, de-encryption, compression, decompression, and/or the like.
- FIG. 1 illustrates a representative operating environment 100 for an example embodiment of a virtual machine backup system 105 in accordance with the present disclosure.
- Representative operating environment 100 includes virtual machine backup system 105 which can be a personal computer (PC) or a server, which further includes at least one system bus 150 which couples system components, including at least one processor 110 ; a system memory 115 which may include random-access memory (RAM); at least one storage device 130 , such as without limitation one or more hard disks, CD-ROMs or DVD-ROMs, or other non-volatile storage devices, such as without limitation flash memory devices; and a data network interface 140 .
- PC personal computer
- server which further includes at least one system bus 150 which couples system components, including at least one processor 110 ; a system memory 115 which may include random-access memory (RAM); at least one storage device 130 , such as without limitation one or more hard disks, CD-ROMs or DVD-ROMs, or other non-volatile storage devices, such as without limitation flash memory devices; and a data network interface 140
- System bus 150 may include any type of data communication structure, including without limitation a memory bus or memory controller, a peripheral bus, a virtual bus, a software bus, and/or a local bus using any bus architecture such as without limitation PCI, USB or IEEE 1394 (Firewire).
- Data network interface 140 may be a wired network interface such as a 100Base-T Fast Ethernet interface, or a wireless network interface such as without limitation a wireless network interface compliant with the IEEE 802.11 (i.e., WiFi), GSM, or CDMA standard.
- Virtual machine backup system 105 may be operated in a networked environment via data network interface 140 , wherein system 105 is connected to one or more virtual machine hosts 160 by a data network 180 , such as a local area network or the Internet, for the transmission and reception of data, such as without limitation backing up and restoring virtual machine data files as will be further described herein.
- a data network 180 such as a local area network or the Internet
- Each of the one or more virtual machine hosts 160 may include one or more virtual machines 170 operating therein, as will be appreciated by the skilled artisan.
- Virtual machine backup system 105 includes a virtual machine backup module 120 that is configured to perform a method of virtual machine data backup as described herein.
- virtual machine backup module 120 includes a set of programmable instructions adapted to execute on processor 100 for performing the disclosed method of virtual machine data backup.
- a method for backing up a virtual disk file or virtual machine file e.g., a VMDK file, is presented herein.
- a virtual machine file 420 slated for backup may be stored on a storage device, such as without limitation, hard disk 410 .
- hard disk 410 may be included within a virtual machine host
- a virtual machine file 420 may be stored on a hard disk array, such as a storage-area network (SAN), a redundant array of independent disks (RAID), network-attached storage (NAS) and/or on any storage medium now or in the future known.
- SAN storage-area network
- RAID redundant array of independent disks
- NAS network-attached storage
- the virtual machine file 420 is logically divided into a number of fixed-length blocks 430 of like size.
- a blocksize of 1 MB is used, however, it is to be understood that a blocksize of less than 1 MB, or greater than 1 MB, may be used within the scope of the disclosed method.
- the blocksize is determined at least in part by a correlation between performance and blocksize. Other parameters affecting blocksize may include, without limitation, a data bus speed, a data bus width, a virtual machine file size, a processor speed, a storage device bandwidth, and a network throughput. If a virtual machine does not precisely equal a multiple of a chosen fixed blocksize, the remainder may be padded with e.g., zeros, nulls, or any other fill pattern, to achieve a set of equal-sized blocks.
- An individual backup data file 445 is created from each fixed-length block 430 of the virtual machine file 420 .
- individual backup data file 445 may be given a temporary filename, and/or stored in a temporary location, e.g., /var/tmp/block000001.dat.
- a hash is generated according to the contents of each individual backup data file.
- a 4,096 bit MD5 hash is used to create the hash value from the contents thereof.
- the resultant hash value is stored in an index file corresponding to the current backup session which store for later use during, e.g., data restoration.
- the index file may include, without limitation, a list of data blocks comprising the backup set, hash values corresponding thereto, a date and time of backup, a source location, and a destination location.
- a collection of hash values representative of a backup of virtual machine file, and data associated therewith, may be stored in an index file 455 .
- Such a collection, together with the individual backup data files comprising the backed-up virtual machine file 420 is known as a “backup set.”
- the data block 430 may be compressed during a compression step 432 using any suitable manner of data compression, including without limitation, LZW, zip, gzip, rar, and/or bzip.
- LZW low-power data compression
- zip zip
- gzip zip
- rar rar
- bzip bzip
- lossless data compression is used however in certain embodiments lossy data compression may advantageously be used.
- the hash value may be regarded as a unique block identifier, or a unique identifier of a backup data file 455 .
- a non-temporary (“archival”) filename of the backup data file may be generated, at least in part, from the hash value, as illustrated in step 434 .
- the filename of a backup data file 455 may be created by appending a hexadecimal representation of the hash value to a file prefix and/or to an appropriate file extension.
- Each backup data file 455 comprising the virtual machine file therefore has a unique filename based upon the hash value.
- a hierarchical directory structure 300 is provided on a backup storage device, e.g., storage device 130 , for storing the backup data files.
- the disclosed structure has at a first level thereof a plurality of directories 320 et seq. (e.g., folders).
- Each first level directory contains therein a plurality of second level directories 330 .
- the hierarchy includes 256 first level directories, wherein each first level directory includes 256 second level directories, for a total number of 65,536 directories.
- the first level and second level directories may be named in accordance with a sixteen bit hexadecimal value, e.g., 00-FF.
- a plurality of first level directories may be named in accordance with the series ./00, ./01, ./02 . . . ./FF while a second level of directories may be named ./00/01, ./00/02/ . . . ./00/FF.
- directory mapping schemes are envisioned within the scope of the present disclosure, such as without limitation, a directory hierarchy having fewer than two levels, a directory hierarchy having greater than two levels, a directory hierarchy having a directory naming convention that includes fewer than a sixteen bit hexadecimal value, a directory hierarchy having a directory naming convention that includes greater than a sixteen bit hexadecimal value, and/or a directory hierarchy having a directory naming convention that includes an alternative naming encoding, such as octal, ASCII85, and the like.
- each backup data file may advantageously be stored (e.g., copied or moved) in the directory hierarchy in accordance with the first 4 bytes of the hash value thereof.
- a backup data file representing a 1 MB block of a virtual machine file has an MD5 hash value of:
- the backup data file may be compressed with gzip and renamed in accordance with the present disclosure, e.g.:
- the destination directory Taking the first four bytes of the hash value, two at a time, the destination directory is identified as:
- the backup data file is stored in the identified destination directory, hence the full pathname of the backup data file may be expressed as:
- each unique data block 430 corresponds to a backup data file 445 uniquely stored within the directory hierarchy 300 .
- the present disclosure also contemplates a filename/directory mapping which uses greater than, less than, and/or other than the first four bytes of the hash value.
- a filename is generated as previously described.
- a file query is made to the storage device, e.g., it is determined whether a backup data file having the same filename exists and if so, it is presumed the block is unchanged from the prior backup, and the index file corresponding to the subsequent backup is updated to include the existing (e.g., unchanged) block.
- the disclosed method provides data integrity validation, which may identify data corruption.
- data integrity validation a backup data block is read (and, if required, expanded to an uncompressed form) whereupon a hash value is generated from the stored contents therein and compared to the hash value included in the filename. If the computed hash value corresponds to the filename hash value, it is presumed the archived data is correct and intact. If, however, a discrepancy is identified between the expected (filename) hash value and the actual (computed) hash value, the data block is flagged as bad. Any backup sets that include a bad backup data file may also be flagged as bad. Bad backup data files and/or backup sets may be slated for immediate deletion, or may be scheduled for deletion at a future time. Integrity validation may be performed on a periodic or routine basis, or may be performed prior to data restoration from a backup set.
- a virtual machine data block may be evaluated to determine whether it contains all zero bytes, all one bytes, contains null data, or exhibits some other relatively simple data pattern which obviates the need to physically store such data block. In this event, a unique “null” hash is generated and included within the index file, together with any associated data, without writing a backup data file to the storage device.
- an embodiment of the disclosed method begins in the step 205 and in the step 210 , the first datablock 430 of a virtual machine file 420 is read.
- the datablock is evaluated to determine whether it exhibits a special data pattern, e.g., whether the datablock consists entirely of zeros (00H). If the datablock exhibits a special data pattern, in the step 225 a corresponding special unique block identifier is assigned to the datablock.
- the special unique block identifier is a 32-digit hexadecimal number consisting of all zeros.
- a hash function is performed on the contents of the datablock to generate a unique block identifier corresponding to the datablock.
- the hash function is an MD5 hash function.
- the step 230 is performed next wherein the destination directory 330 et seq. within the directory hierarchy 300 is determined.
- the destination directory 330 et seq. is based at least in part upon the value of specific digits within the unique block identifier.
- the first two bytes of the unique block identifier (e.g., the two most significant digits of the hash) represent the first level directory 320 et seq. within the directory hierarchy.
- the next two bytes of the unique block identifier represent the second level directory 330 et seq. within the directory hierarchy.
- the pathname of the datablock file as stored within the directory hierarchy may be formed by concatenating a pathname root string (e.g., “/mnt/bck/”), the first two significant hexadecimal digits of the unique identifier (e.g., “01”), a directory delimiter character (e.g., “/”), the next two significant hexadecimal digits of the unique identifier (e.g., “02”), a directory delimiter character (e.g., “/”), and the file name of the datablock (e.g., 010249a8a218ef8a4da87550f388942d.dat.
- the datablock 430 is optionally compressed to reduce the amount of storage resources that will be required to store the datablock file.
- the manner of compression may be hard-coded, defined in a database (e.g., a registry database), and/or defined in a configuration file (e.g., via a “preferences” or “options” setting provided by a user interface or by hand-editing a configuration file) in accordance with user requirements.
- Any suitable manner of data compression may be employed, including without limitation, LZW, zip, gzip, rar, and/or bzip.
- the datablock may be cryptographically encoded using any suitable cryptosystem, including without limitation a symmetric-key cryptosystem (e.g., DES, Triple-DES, AES, and the like) or a public-key cryptosystem (e.g., RSA, Diffie-Hellman, elliptic curve techniques, and the like.)
- a symmetric-key cryptosystem e.g., DES, Triple-DES, AES, and the like
- a public-key cryptosystem e.g., RSA, Diffie-Hellman, elliptic curve techniques, and the like.
- the datablock 430 (which may be in its original form, compressed, encrypted, and/or combinations thereof) is written to a corresponding datablock file 445 in the destination directory 335 et seq.
- an index file entry 446 corresponding to the datablock 430 in an index file 445 is created.
- the index file 445 may contain entries relating solely to the current backup set, or may contain entries relating to a plurality of backup sets.
- the index file 445 includes a database.
- an index file entry 446 may include, without limitation, a unique block identifier value, a timestamp of the backup set, a timestamp relating to the backup time of the individual datablock, a datablock source location, a datablock destination location.
- the datablock source location may include an identifier relating to the virtual machine from which the backup set was generated, a virtual machine host identifier, a machine name, a node name, a network address (e.g., an internet protocol address), a software identifier, a hardware identifier, an encryption key, and the like.
- the datablock destination location may include an identifier relating to the storage device on which the datablock file 445 is stored, a destination directory in which the datablock file 445 is stored, a pathname of the datablock file, a filename of the datablock file, a unique block identifier value, and the like.
- step 250 a test is performed whereby it is determined whether all datablocks 430 of the virtual machine file 420 have been processed. If not, the method 200 iterates to the step 210 wherein the next datablock 430 of the virtual machine file 420 is read, and processing proceeds as described hereinabove.
- the present disclosure is also directed to a computer-based apparatus and a computing system configured to perform a method of data backup as described herein. Also disclosed is computer-readable media comprising a set of instructions of performing a method of data backup as described herein.
Abstract
Description
- The present application claims the benefit of and priority to U.S. Provisional Application Ser. No. 61/168,315, filed on Apr. 10, 2009, entitled “VIRTUAL MACHINE DATA BACKUP”; U.S. Provisional Application Ser. No. 61/168,318, filed on Apr. 10, 2009, entitled “VIRTUAL MACHINE FILE-LEVEL RESTORATION”; and U.S. Provisional Application Ser. No. 61/172,435, filed on Apr. 24, 2009, entitled “VIRTUAL MACHINE DATA REPLICATION”; the entirety of each are hereby incorporated by reference herein for all purposes.
- 1. Technical Field
- The present disclosure relates to computer data backup, and in particular, to a system and method for performing block-level backups of virtual machine, wherein backed up data is stored in de-duplicated form in a hierarchical directory structure.
- 2. Background of Related Art
- Continuing advances in storage technology allow vast amounts of digital data to be stored cheaply and efficiently. However, in the event of a failure or catastrophe, equally vast amounts of data can be lost. Therefore, data backup is a critical component of computer-based systems. As used herein, the term “backup” may refer to the act of creating copies of data, and may refer to the actual backed-up copy of the original data. The original data typically resides on a hard drive, or on an array of hard drives, but may also reside on other forms of storage media, such as solid state memory. Data backups are necessary for several reasons, including disaster recovery, restoring data lost due to storage media failure, recovering accidentally deleted data, and repairing corrupted data resulting from malfunctioning or malicious software.
- A virtual machine (VM) is a software abstraction of an underlying physical (i.e., hardware) machine which enables one or more instances of an operating system, or even one or more operating systems, to run concurrently on a physical host machine. Virtual machines have become popular with administrators of data centers, which can contain dozens, hundreds, or even thousands of physical machines. The use of virtual servers greatly simplifies the task of configuring and administering servers in a large scale environment, because a virtual machine may be quickly placed into service without incurring the expense of provisioning a hardware machine at a data center. Virtualization is highly scalable, enabling servers to be allocated or deallocated in response to changes in demand. Support and administration requirements may be reduced because virtual servers are readily monitored and accessed using remote administration tools and diagnostic software.
- In one aspect, a virtual server consists of three components. The first component is virtualization software configured to run on the host machine which performs the hardware abstraction, often referred to as a hypervisor. The second component is a data file which represents the filesystem of the virtual machine, which typically contains the virtual machine's operating system, applications, data files, etc. A virtual machine data file may be a hard disk image file, such as, without limitation, a Virtual Machine Disk Format (VMDK) format file. Thus, for each virtual machine, a separate virtual machine file is required. The third component is the physical machine on which the virtualization software executes. A physical machine may include a processor, random-access memory, internal or external disk storage, and input/output interfaces, such as network, storage, and desktop interfaces (e.g., keyboard, pointing device, and graphic display interfaces.)
- In installations having many machines, traditional methods of performing backups may become burdensome and tend to be unduly resource-intensive, particularly in a virtual environment. In addition, backing up multiple instances of essentially identical virtual servers (as typically found in, e.g., “server farms” or in clustered systems”) often results in large amounts of redundant backup data, which becomes difficult to manage and store. A backup system which performs virtual server backups with increased efficiency and effectiveness would be a welcome advance.
- The disclosed method processes 1 MB fixed-length blocks of data of a virtual machine file. A unique identifier, such as without limitation, an MD5 hash, is created for this block data. The 1 MB of data can be compressed, or left uncompressed. The 1 MB of data is stored as a single file. The file name is the MD5 hash value of the 1 MB data block. The hash of this file is saved to a separate index file for later use to retrieve, validate, and rebuild the backup data. The data blocks, whether in compressed or uncompressed form, are stored at a storage destination, in a unique directory structure consisting of 256 first level directories designated as 00-FF, each having 256 second level directories designated as 00-FF within, comprising 65,536 directories in total. The 1 MB compressed (or uncompressed) data files are stored in the directory structure based on the first four bytes of the hash, e.g.,
-
- “./00/22/T.002249a8a218ef8a4da87550f388942d.gz”.
- The first four bytes of data for the file name are “0022”. The file is stored in directory “./00/22/”. The .gz extension indicates the file is compressed.
- Subsequent backups are performed having as a destination the same storage location. Data blocks are generated using the above unique hash. A file query is made to the storage location to see if there is already a file existing with the same hash. If the file does not exist, the source data is written into the directory hierarchy with the hash as the file name and an index file is updated. If the file exists, then only the index file is updated for the current backup being run.
- Over time the directory structure will accumulate data blocks from all backups sent thereto. A separate index file is created for each backup, and is used to keep track of the blocks of data for, e.g., re-assembling data block of the original source during restoration.
- The use of a hash also provides a self-checking mechanism which enables self-validation of the data within the stored file. A routine is scheduled to run on an ad-hoc or periodic basis that reads the data within a stored file, and validates the data in the file to verify a match to the hash file name. If the data does not match, the block is considered suspect, and is slated to be deleted. All associated backups that include this data block are flagged as “bad”. The index file corresponding to backups so flagged may additionally or alternatively include a “bad” flag.
- In an embodiment, the data blocks (e.g., the 1 MB data blocks) may be evaluated to determine whether the data contained therein exhibits a predefined (“special”) data pattern. For example with limitation, a special data pattern may include a particular or repeating pattern, e.g., a data block consisting entirely of zero (00H) bytes. In this instance; a special hash is generated that represents the special data block containing the particular data pattern. The special hash may be hard-coded, defined in a database, and/or defined in a configuration file. Since the contents of a special data block is predefined, it is only necessary to record the fact that the data block is special. It is unnecessary to store the actual contents of a special block. Thus, for each data block identified as special, the index file is updated accordingly and the backup proceeds. In this manner, resources are conserved since special blocks, e.g., null blocks, do not consume space on the storage device, do not use communication bandwidth during backup and restoration procedures, do not require as much computational resources, and so forth. This provides an efficient way to skip special (e.g., null) data in a given backup set.
- In another aspect, disclosed is a method for backing up computer data that includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize. A unique block identifier relating to the contents of a fixed size block is generated. On a destination storage device, a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier. A datablock file representative of the fixed size block is stored in a corresponding second level directory.
- In yet another aspect, disclosed is machine-readable media comprising a set of instructions configured to perform a method for backing up computer data that includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize. A unique block identifier relating to the contents of a fixed size block is generated. On a destination storage device, a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier. A datablock file representative of the fixed size block is stored in a corresponding second level directory.
- Also disclosed is a system for performing data backup that includes a processor, a storage device operably coupled to the processor, and a data backup module. The data backup module including a set of instructions executable on the processor for performing a method of data backup. The method includes the steps of dividing a source data file into a plurality of fixed size blocks, wherein each block is of equal blocksize. A unique block identifier relating to the contents of a fixed size block is generated. On a destination storage device, a directory hierarchy is provided having a plurality of first-level directories corresponding to a first portion of the unique block identifier, and a plurality of second-level directories corresponding to a second portion of the unique block identifier. A datablock file representative of the fixed size block is stored in a corresponding second level directory.
- The above and other aspects, features, and advantages of the present disclosure will become more apparent in light of the following detailed description when taken in conjunction with the accompanying drawings in which:
-
FIG. 1 shows a block diagram of an embodiment of a virtual machine backup system in accordance with the present disclosure; -
FIG. 2 is a flowchart of an embodiment of a virtual machine backup method in accordance with the present disclosure; -
FIG. 3 is a block diagram illustrating a directory hierarchy of an embodiment of a virtual machine backup in accordance with the present disclosure; and -
FIG. 4 is a flow diagram of an embodiment of a virtual machine backup in accordance with the present disclosure. - Particular embodiments of the present disclosure are described hereinbelow with reference to the accompanying drawings; however, it is to be understood that the disclosed embodiments are merely examples of the disclosure, which may be embodied in various forms. Well-known functions or constructions are not described in detail to avoid obscuring the present disclosure in unnecessary detail. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present disclosure in virtually any appropriately detailed structure. In the discussion contained herein, the terms user interface element and/or button are understood to be non-limiting, and include other user interface elements such as, without limitation, a hyperlink, clickable image, and the like.
- Additionally, the present invention may be described herein in terms of functional block components, code listings, optional selections, page displays, and various processing steps. It should be appreciated that such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions. For example, the present invention may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
- Similarly, the software elements of the present invention may be implemented with any programming or scripting language such as C, C++, C#, Java, COBOL, assembler, PERL, Python, PHP, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements. The object code created may be executed by any computer having an Internet Web Browser, on a variety of operating systems including Windows, Macintosh, and/or Linux.
- Further, it should be noted that the present invention may employ any number of conventional techniques for data transmission, signaling, data processing, network control, and the like.
- It should be appreciated that the particular implementations shown and described herein are illustrative of the invention and its best mode and are not intended to otherwise limit the scope of the present invention in any way. Examples are presented herein which may include sample data items (e.g., names, dates, etc.) which are intended as examples and are not to be construed as limiting. Indeed, for the sake of brevity, conventional data networking, application development and other functional aspects of the systems (and components of the individual operating components of the systems) may not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent example functional relationships and/or physical or virtual couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical or virtual connections may be present in a practical electronic data communications system.
- As will be appreciated by one of ordinary skill in the art, the present invention may be embodied as a method, a data processing system, a device for data processing, and/or a computer program product. Accordingly, the present invention may take the form of an entirely software embodiment, an entirely hardware embodiment, or an embodiment combining aspects of both software and hardware. Furthermore, the present invention may take the form of a computer program product on a computer-readable storage medium having computer-readable program code means embodied in the storage medium. Any suitable computer-readable storage medium may be utilized, including hard disks, CD-ROM, DVD-ROM, optical storage devices, magnetic storage devices, semiconductor storage devices (e.g., USB thumb drives) and/or the like.
- The present invention is described below with reference to block diagrams and flowchart illustrations of methods, apparatus (e.g., systems), and computer program products according to various aspects of the invention. It will be understood that each functional block of the block diagrams and the flowchart illustrations, and combinations of functional blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions that execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart 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 function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart 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 operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
- Accordingly, functional blocks of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions. It will also be understood that each functional block of the block diagrams and flowchart illustrations, and combinations of functional blocks in the block diagrams and flowchart illustrations, can be implemented by either special purpose hardware-based computer systems that perform the specified functions or steps, or suitable combinations of special purpose hardware and computer instructions.
- One skilled in the art will also appreciate that, for security reasons, any databases, systems, or components of the present invention may consist of any combination of databases or components at a single location or at multiple locations, wherein each database or system includes any of various suitable security features, such as firewalls, access codes, encryption, de-encryption, compression, decompression, and/or the like.
- The scope of the invention should be determined by the appended claims and their legal equivalents, rather than by the examples given herein. For example, the steps recited in any method claims may be executed in any order and are not limited to the order presented in the claims. Moreover, no element is essential to the practice of the invention unless specifically described herein as “critical” or “essential.”
-
FIG. 1 illustrates arepresentative operating environment 100 for an example embodiment of a virtualmachine backup system 105 in accordance with the present disclosure.Representative operating environment 100 includes virtualmachine backup system 105 which can be a personal computer (PC) or a server, which further includes at least onesystem bus 150 which couples system components, including at least oneprocessor 110; asystem memory 115 which may include random-access memory (RAM); at least onestorage device 130, such as without limitation one or more hard disks, CD-ROMs or DVD-ROMs, or other non-volatile storage devices, such as without limitation flash memory devices; and adata network interface 140.System bus 150 may include any type of data communication structure, including without limitation a memory bus or memory controller, a peripheral bus, a virtual bus, a software bus, and/or a local bus using any bus architecture such as without limitation PCI, USB or IEEE 1394 (Firewire).Data network interface 140 may be a wired network interface such as a 100Base-T Fast Ethernet interface, or a wireless network interface such as without limitation a wireless network interface compliant with the IEEE 802.11 (i.e., WiFi), GSM, or CDMA standard. - Virtual
machine backup system 105 may be operated in a networked environment viadata network interface 140, whereinsystem 105 is connected to one or more virtual machine hosts 160 by adata network 180, such as a local area network or the Internet, for the transmission and reception of data, such as without limitation backing up and restoring virtual machine data files as will be further described herein. Each of the one or more virtual machine hosts 160 may include one or morevirtual machines 170 operating therein, as will be appreciated by the skilled artisan. - Virtual
machine backup system 105 includes a virtualmachine backup module 120 that is configured to perform a method of virtual machine data backup as described herein. In an embodiment, virtualmachine backup module 120 includes a set of programmable instructions adapted to execute onprocessor 100 for performing the disclosed method of virtual machine data backup. In particular, a method for backing up a virtual disk file or virtual machine file, e.g., a VMDK file, is presented herein. With reference toFIG. 2 , avirtual machine file 420 slated for backup may be stored on a storage device, such as without limitation,hard disk 410. While it is contemplated thathard disk 410 may be included within a virtual machine host, is it to be understood that avirtual machine file 420 may be stored on a hard disk array, such as a storage-area network (SAN), a redundant array of independent disks (RAID), network-attached storage (NAS) and/or on any storage medium now or in the future known. - The
virtual machine file 420 is logically divided into a number of fixed-length blocks 430 of like size. In one embodiment, a blocksize of 1 MB is used, however, it is to be understood that a blocksize of less than 1 MB, or greater than 1 MB, may be used within the scope of the disclosed method. In one aspect, the blocksize is determined at least in part by a correlation between performance and blocksize. Other parameters affecting blocksize may include, without limitation, a data bus speed, a data bus width, a virtual machine file size, a processor speed, a storage device bandwidth, and a network throughput. If a virtual machine does not precisely equal a multiple of a chosen fixed blocksize, the remainder may be padded with e.g., zeros, nulls, or any other fill pattern, to achieve a set of equal-sized blocks. - An individual backup data file 445 is created from each fixed-
length block 430 of thevirtual machine file 420. In an embodiment, individual backup data file 445 may be given a temporary filename, and/or stored in a temporary location, e.g., /var/tmp/block000001.dat. A hash is generated according to the contents of each individual backup data file. In an embodiment, a 4,096 bit MD5 hash is used to create the hash value from the contents thereof. The resultant hash value is stored in an index file corresponding to the current backup session which store for later use during, e.g., data restoration. The index file may include, without limitation, a list of data blocks comprising the backup set, hash values corresponding thereto, a date and time of backup, a source location, and a destination location. A collection of hash values representative of a backup of virtual machine file, and data associated therewith, may be stored in anindex file 455. Such a collection, together with the individual backup data files comprising the backed-upvirtual machine file 420 is known as a “backup set.” - Additionally or alternatively, the data block 430 may be compressed during a
compression step 432 using any suitable manner of data compression, including without limitation, LZW, zip, gzip, rar, and/or bzip. Preferably, lossless data compression is used however in certain embodiments lossy data compression may advantageously be used. - The hash value may be regarded as a unique block identifier, or a unique identifier of a
backup data file 455. A non-temporary (“archival”) filename of the backup data file may be generated, at least in part, from the hash value, as illustrated instep 434. For example, the filename of a backup data file 455 may be created by appending a hexadecimal representation of the hash value to a file prefix and/or to an appropriate file extension. Each backup data file 455 comprising the virtual machine file therefore has a unique filename based upon the hash value. - As seen in
FIG. 3 , ahierarchical directory structure 300 is provided on a backup storage device, e.g.,storage device 130, for storing the backup data files. The disclosed structure has at a first level thereof a plurality ofdirectories 320 et seq. (e.g., folders). Each first level directory contains therein a plurality ofsecond level directories 330. In an embodiment, the hierarchy includes 256 first level directories, wherein each first level directory includes 256 second level directories, for a total number of 65,536 directories. The first level and second level directories may be named in accordance with a sixteen bit hexadecimal value, e.g., 00-FF. Thus, for example, a plurality of first level directories may be named in accordance with the series ./00, ./01, ./02 . . . ./FF while a second level of directories may be named ./00/01, ./00/02/ . . . ./00/FF. Other directory mapping schemes are envisioned within the scope of the present disclosure, such as without limitation, a directory hierarchy having fewer than two levels, a directory hierarchy having greater than two levels, a directory hierarchy having a directory naming convention that includes fewer than a sixteen bit hexadecimal value, a directory hierarchy having a directory naming convention that includes greater than a sixteen bit hexadecimal value, and/or a directory hierarchy having a directory naming convention that includes an alternative naming encoding, such as octal, ASCII85, and the like. - With reference now to
FIG. 2 , each backup data file may advantageously be stored (e.g., copied or moved) in the directory hierarchy in accordance with the first 4 bytes of the hash value thereof. By way of example only, assume a backup data file representing a 1 MB block of a virtual machine file has an MD5 hash value of: -
- 010249a8a218ef8a4da87550f388942d
- The backup data file may be compressed with gzip and renamed in accordance with the present disclosure, e.g.:
-
- T.010249a8a218ef8a4da87550f388942d.gz
- Taking the first four bytes of the hash value, two at a time, the destination directory is identified as:
-
- ./01/02
- The backup data file is stored in the identified destination directory, hence the full pathname of the backup data file may be expressed as:
-
- ./01/02T/.010249a8a218ef8a4da87550f388942d.gz
- In this manner, each
unique data block 430 corresponds to a backup data file 445 uniquely stored within thedirectory hierarchy 300. The present disclosure also contemplates a filename/directory mapping which uses greater than, less than, and/or other than the first four bytes of the hash value. During execution of a subsequent backup process, a filename is generated as previously described. A file query is made to the storage device, e.g., it is determined whether a backup data file having the same filename exists and if so, it is presumed the block is unchanged from the prior backup, and the index file corresponding to the subsequent backup is updated to include the existing (e.g., unchanged) block. If, however, it is determined whether a backup data file having the same filename does not exist, it is presumed the block changed and the newly-created backup data file is stored within the directory hierarchy as previously described herein, and a corresponding entry is written to the index file. In this manner, by ensuring that duplicate copies of data block are stored only once, increasing efficiency, e.g., increased execution speed and reduced resource usage, are provided by a backup performed in accordance with the present disclosure. - Advantageously, the disclosed method provides data integrity validation, which may identify data corruption. During data integrity validation, a backup data block is read (and, if required, expanded to an uncompressed form) whereupon a hash value is generated from the stored contents therein and compared to the hash value included in the filename. If the computed hash value corresponds to the filename hash value, it is presumed the archived data is correct and intact. If, however, a discrepancy is identified between the expected (filename) hash value and the actual (computed) hash value, the data block is flagged as bad. Any backup sets that include a bad backup data file may also be flagged as bad. Bad backup data files and/or backup sets may be slated for immediate deletion, or may be scheduled for deletion at a future time. Integrity validation may be performed on a periodic or routine basis, or may be performed prior to data restoration from a backup set.
- In another aspect, a virtual machine data block may be evaluated to determine whether it contains all zero bytes, all one bytes, contains null data, or exhibits some other relatively simple data pattern which obviates the need to physically store such data block. In this event, a unique “null” hash is generated and included within the index file, together with any associated data, without writing a backup data file to the storage device.
- Turning to
FIG. 4 , an embodiment of the disclosed method begins in thestep 205 and in thestep 210, thefirst datablock 430 of avirtual machine file 420 is read. In thestep 215, the datablock is evaluated to determine whether it exhibits a special data pattern, e.g., whether the datablock consists entirely of zeros (00H). If the datablock exhibits a special data pattern, in the step 225 a corresponding special unique block identifier is assigned to the datablock. In an embodiment, the special unique block identifier is a 32-digit hexadecimal number consisting of all zeros. The process continues with thestep 245, as discussed below. - If, however in the
step 215 it is determined the datablock does not exhibit a special data pattern, then in the step 220 a hash function is performed on the contents of the datablock to generate a unique block identifier corresponding to the datablock. In an embodiment, the hash function is an MD5 hash function. Thestep 230 is performed next wherein thedestination directory 330 et seq. within thedirectory hierarchy 300 is determined. Thedestination directory 330 et seq. is based at least in part upon the value of specific digits within the unique block identifier. In an embodiment, the first two bytes of the unique block identifier (e.g., the two most significant digits of the hash) represent thefirst level directory 320 et seq. within the directory hierarchy. The next two bytes of the unique block identifier (e.g., the next two most significant digits of the hash) represent thesecond level directory 330 et seq. within the directory hierarchy. The pathname of the datablock file as stored within the directory hierarchy may be formed by concatenating a pathname root string (e.g., “/mnt/bck/”), the first two significant hexadecimal digits of the unique identifier (e.g., “01”), a directory delimiter character (e.g., “/”), the next two significant hexadecimal digits of the unique identifier (e.g., “02”), a directory delimiter character (e.g., “/”), and the file name of the datablock (e.g., 010249a8a218ef8a4da87550f388942d.dat. - In the
step 235, thedatablock 430 is optionally compressed to reduce the amount of storage resources that will be required to store the datablock file. In embodiments, the manner of compression may be hard-coded, defined in a database (e.g., a registry database), and/or defined in a configuration file (e.g., via a “preferences” or “options” setting provided by a user interface or by hand-editing a configuration file) in accordance with user requirements. Any suitable manner of data compression may be employed, including without limitation, LZW, zip, gzip, rar, and/or bzip. Additionally or alternatively, the datablock may be cryptographically encoded using any suitable cryptosystem, including without limitation a symmetric-key cryptosystem (e.g., DES, Triple-DES, AES, and the like) or a public-key cryptosystem (e.g., RSA, Diffie-Hellman, elliptic curve techniques, and the like.) - In the
step 240, the datablock 430 (which may be in its original form, compressed, encrypted, and/or combinations thereof) is written to acorresponding datablock file 445 in the destination directory 335 et seq. In thestep 245, anindex file entry 446 corresponding to thedatablock 430 in anindex file 445 is created. Theindex file 445 may contain entries relating solely to the current backup set, or may contain entries relating to a plurality of backup sets. In an embodiment, theindex file 445 includes a database. For eachcorresponding datablock 430 identified within theindex file 445, anindex file entry 446 may include, without limitation, a unique block identifier value, a timestamp of the backup set, a timestamp relating to the backup time of the individual datablock, a datablock source location, a datablock destination location. In embodiments, the datablock source location may include an identifier relating to the virtual machine from which the backup set was generated, a virtual machine host identifier, a machine name, a node name, a network address (e.g., an internet protocol address), a software identifier, a hardware identifier, an encryption key, and the like. In embodiments, the datablock destination location may include an identifier relating to the storage device on which thedatablock file 445 is stored, a destination directory in which thedatablock file 445 is stored, a pathname of the datablock file, a filename of the datablock file, a unique block identifier value, and the like. - In the
step 250, a test is performed whereby it is determined whether alldatablocks 430 of thevirtual machine file 420 have been processed. If not, themethod 200 iterates to thestep 210 wherein thenext datablock 430 of thevirtual machine file 420 is read, and processing proceeds as described hereinabove. - The present disclosure is also directed to a computer-based apparatus and a computing system configured to perform a method of data backup as described herein. Also disclosed is computer-readable media comprising a set of instructions of performing a method of data backup as described herein.
- While several embodiments of the disclosure have been shown in the drawings and/or discussed herein, it is not intended that the disclosure be limited thereto, as it is intended that the disclosure be as broad in scope as the art will allow and that the specification be read likewise. Therefore, the above description should not be construed as limiting, but merely as exemplifications of particular embodiments. The claims can encompass embodiments in hardware, software, or a combination thereof. Those skilled in the art will envision other modifications within the scope and spirit of the claims appended hereto.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/758,245 US20100262797A1 (en) | 2009-04-10 | 2010-04-12 | Virtual machine data backup |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16831809P | 2009-04-10 | 2009-04-10 | |
US16831509P | 2009-04-10 | 2009-04-10 | |
US17243509P | 2009-04-24 | 2009-04-24 | |
US12/758,245 US20100262797A1 (en) | 2009-04-10 | 2010-04-12 | Virtual machine data backup |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100262797A1 true US20100262797A1 (en) | 2010-10-14 |
Family
ID=42935159
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/758,371 Active 2030-09-16 US8135748B2 (en) | 2009-04-10 | 2010-04-12 | Virtual machine data replication |
US12/758,326 Active 2031-02-19 US8682862B2 (en) | 2009-04-10 | 2010-04-12 | Virtual machine file-level restoration |
US12/758,245 Abandoned US20100262797A1 (en) | 2009-04-10 | 2010-04-12 | Virtual machine data backup |
US13/414,119 Abandoned US20120221529A1 (en) | 2009-04-10 | 2012-03-07 | Virtual machine data replication |
US14/215,192 Abandoned US20140201156A1 (en) | 2009-04-10 | 2014-03-17 | Virtual machine file-level restoration |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/758,371 Active 2030-09-16 US8135748B2 (en) | 2009-04-10 | 2010-04-12 | Virtual machine data replication |
US12/758,326 Active 2031-02-19 US8682862B2 (en) | 2009-04-10 | 2010-04-12 | Virtual machine file-level restoration |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/414,119 Abandoned US20120221529A1 (en) | 2009-04-10 | 2012-03-07 | Virtual machine data replication |
US14/215,192 Abandoned US20140201156A1 (en) | 2009-04-10 | 2014-03-17 | Virtual machine file-level restoration |
Country Status (1)
Country | Link |
---|---|
US (5) | US8135748B2 (en) |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100121937A1 (en) * | 2008-11-07 | 2010-05-13 | Aszmann Lawrence E | Thin import for a data storage system |
US20110016132A1 (en) * | 2009-07-14 | 2011-01-20 | Fujitsu Limited | Archive device |
US8285817B1 (en) * | 2006-03-20 | 2012-10-09 | Netapp, Inc. | Migration engine for use in a logical namespace of a storage system environment |
US8516023B1 (en) * | 2010-06-03 | 2013-08-20 | Netapp, Inc. | Context based file system |
US20130268931A1 (en) * | 2012-04-06 | 2013-10-10 | Security First Corp. | Systems and methods for securing and restoring virtual machines |
US20130276122A1 (en) * | 2012-04-11 | 2013-10-17 | James L. Sowder | System and method for providing storage device-based advanced persistent threat (apt) protection |
US20130297722A1 (en) * | 2012-05-02 | 2013-11-07 | Microsoft Corporation | Integrated format conversion during disk upload |
US20140006355A1 (en) * | 2011-03-31 | 2014-01-02 | Hitachi Solutions, Ltd. | Information processing system, backup management method and program |
US8655844B1 (en) | 2009-09-30 | 2014-02-18 | Emc Corporation | File version tracking via signature indices |
US20140059312A1 (en) * | 2012-08-27 | 2014-02-27 | Fujitsu Limited | Recording medium, computer, and information processing system |
US8701193B1 (en) | 2009-09-30 | 2014-04-15 | Emc Corporation | Malware detection via signature indices |
US8850146B1 (en) | 2012-07-27 | 2014-09-30 | Symantec Corporation | Backup of a virtual machine configured to perform I/O operations bypassing a hypervisor |
WO2014205286A1 (en) * | 2013-06-19 | 2014-12-24 | Exablox Corporation | Data scrubbing in cluster-based storage systems |
US8930423B1 (en) * | 2008-12-30 | 2015-01-06 | Symantec Corporation | Method and system for restoring encrypted files from a virtual machine image |
US8977828B2 (en) | 2012-06-21 | 2015-03-10 | Ca, Inc. | Data recovery using conversion of backup to virtual disk |
WO2015057831A1 (en) * | 2013-10-15 | 2015-04-23 | Unitreds Inc. | Systems and methods for backing up a live virtual machine |
US9032248B1 (en) * | 2012-10-04 | 2015-05-12 | Amazon Technologies, Inc. | Memory write tracking for virtual machines |
US9165137B2 (en) | 2010-08-18 | 2015-10-20 | Security First Corp. | Systems and methods for securing virtual machine computing environments |
US9262212B2 (en) | 2012-11-02 | 2016-02-16 | The Boeing Company | Systems and methods for migrating virtual machines |
US9417811B2 (en) | 2012-03-07 | 2016-08-16 | International Business Machines Corporation | Efficient inline data de-duplication on a storage system |
US9514137B2 (en) | 2013-06-12 | 2016-12-06 | Exablox Corporation | Hybrid garbage collection |
CN106202173A (en) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | The Intelligent drainage weighing method of a kind of file repository storage and system |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
US9628438B2 (en) | 2012-04-06 | 2017-04-18 | Exablox | Consistent ring namespaces facilitating data storage and organization in network infrastructures |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9817686B2 (en) | 2014-12-09 | 2017-11-14 | The Boeing Company | Systems and methods for securing virtual machines |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
US10067692B2 (en) * | 2013-05-31 | 2018-09-04 | International Business Machines Corporation | Method and apparatus for backing up and restoring cross-virtual machine application |
US10078555B1 (en) * | 2015-04-14 | 2018-09-18 | EMC IP Holding Company LLC | Synthetic full backups for incremental file backups |
US10248556B2 (en) | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US10474654B2 (en) | 2015-08-26 | 2019-11-12 | Storagecraft Technology Corporation | Structural data transfer over a network |
US10776197B1 (en) * | 2017-06-27 | 2020-09-15 | EMC IP Holding Company LLC | Detect and triage data integrity issue for virtual machine |
US20200341854A1 (en) * | 2019-04-26 | 2020-10-29 | EMC IP Holding Company LLC | Efficient Method to Find Changed Data between Indexed Data and New Backup |
US10872069B2 (en) * | 2019-01-22 | 2020-12-22 | Commvault Systems, Inc. | File indexing for virtual machine backups in a data storage management system |
US11347707B2 (en) | 2019-01-22 | 2022-05-31 | Commvault Systems, Inc. | File indexing for virtual machine backups based on using live browse features |
US11474732B2 (en) * | 2020-05-12 | 2022-10-18 | Hitachi, Ltd. | Security system, host system, and backup method |
US20220342773A1 (en) * | 2021-04-21 | 2022-10-27 | EMC IP Holding Company LLC | Globally unique way to identify a resource |
US11888964B1 (en) * | 2022-08-11 | 2024-01-30 | Beijing Tenafe Electronic Technology Co., Ltd. | Device and method for data processing |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266438B2 (en) | 2004-10-25 | 2012-09-11 | Security First Corp. | Secure data parser method and system |
US8135930B1 (en) | 2008-07-14 | 2012-03-13 | Vizioncore, Inc. | Replication systems and methods for a virtual computing environment |
US8046550B2 (en) * | 2008-07-14 | 2011-10-25 | Quest Software, Inc. | Systems and methods for performing backup operations of virtual machine files |
US8060476B1 (en) | 2008-07-14 | 2011-11-15 | Quest Software, Inc. | Backup systems and methods for a virtual computing environment |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8429649B1 (en) | 2008-09-25 | 2013-04-23 | Quest Software, Inc. | Systems and methods for data management in a virtual computing environment |
US8996468B1 (en) | 2009-04-17 | 2015-03-31 | Dell Software Inc. | Block status mapping system for reducing virtual machine backup storage |
US8478801B2 (en) * | 2009-05-20 | 2013-07-02 | Vmware, Inc. | Efficient reconstruction of virtual disk hierarchies across storage domains |
JP5227887B2 (en) * | 2009-05-21 | 2013-07-03 | 株式会社日立製作所 | Backup management method |
US9778946B2 (en) | 2009-08-07 | 2017-10-03 | Dell Software Inc. | Optimized copy of virtual machine storage files |
US8326839B2 (en) * | 2009-11-09 | 2012-12-04 | Oracle International Corporation | Efficient file access in a large repository using a two-level cache |
US10210162B1 (en) * | 2010-03-29 | 2019-02-19 | Carbonite, Inc. | Log file management |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US9569446B1 (en) | 2010-06-08 | 2017-02-14 | Dell Software Inc. | Cataloging system for image-based backup |
US9507670B2 (en) * | 2010-06-14 | 2016-11-29 | Veeam Software Ag | Selective processing of file system objects for image level backups |
US9239860B1 (en) * | 2010-06-30 | 2016-01-19 | Emc Corporation | Augmenting virtual directories |
US9497257B1 (en) | 2010-06-30 | 2016-11-15 | EMC IP Holding Company LLC | File level referrals |
US9244969B1 (en) | 2010-06-30 | 2016-01-26 | Emc Corporation | Virtual disk recovery |
US8898114B1 (en) | 2010-08-27 | 2014-11-25 | Dell Software Inc. | Multitier deduplication systems and methods |
US9037547B1 (en) * | 2010-09-15 | 2015-05-19 | Symantec Corporation | Backup time deduplication of common virtual disks from virtual machine backup images |
US20120084272A1 (en) * | 2010-10-04 | 2012-04-05 | International Business Machines Corporation | File system support for inert files |
CN102457567B (en) * | 2010-11-08 | 2015-01-21 | 中标软件有限公司 | Mirror image backup/recovery method and tool of web management mode |
US8694685B2 (en) * | 2011-02-25 | 2014-04-08 | International Business Machines Corporation | Migrating virtual machines with adaptive compression |
US8516506B2 (en) * | 2011-03-29 | 2013-08-20 | Denso International America, Inc. | Method and system for restoring an application in a dynamically linked environment |
US8442952B1 (en) * | 2011-03-30 | 2013-05-14 | Emc Corporation | Recovering in deduplication systems |
US9311328B2 (en) * | 2011-04-22 | 2016-04-12 | Veritas Us Ip Holdings Llc | Reference volume for initial synchronization of a replicated volume group |
US9244933B2 (en) | 2011-04-29 | 2016-01-26 | International Business Machines Corporation | Disk image introspection for storage systems |
US8522068B2 (en) * | 2011-05-02 | 2013-08-27 | International Business Machines Corporation | Coordinated disaster recovery production takeover operations |
US8671308B2 (en) | 2011-05-02 | 2014-03-11 | International Business Machines Corporation | Optimizing disaster recovery systems during takeover operations |
US8745003B1 (en) * | 2011-05-13 | 2014-06-03 | Emc Corporation | Synchronization of storage using comparisons of fingerprints of blocks |
US8782003B1 (en) | 2011-05-13 | 2014-07-15 | Emc Corporation | Synchronization of storage using log files and snapshots |
US8868882B2 (en) | 2011-06-08 | 2014-10-21 | Microsoft Corporation | Storage architecture for backup application |
US9158632B1 (en) | 2011-06-30 | 2015-10-13 | Emc Corporation | Efficient file browsing using key value databases for virtual backups |
US8849769B1 (en) * | 2011-06-30 | 2014-09-30 | Emc Corporation | Virtual machine file level recovery |
US9229951B1 (en) | 2011-06-30 | 2016-01-05 | Emc Corporation | Key value databases for virtual backups |
US8949829B1 (en) | 2011-06-30 | 2015-02-03 | Emc Corporation | Virtual machine disaster recovery |
US8849777B1 (en) * | 2011-06-30 | 2014-09-30 | Emc Corporation | File deletion detection in key value databases for virtual backups |
US9311327B1 (en) | 2011-06-30 | 2016-04-12 | Emc Corporation | Updating key value databases for virtual backups |
US8843443B1 (en) | 2011-06-30 | 2014-09-23 | Emc Corporation | Efficient backup of virtual data |
US9747287B1 (en) | 2011-08-10 | 2017-08-29 | Nutanix, Inc. | Method and system for managing metadata for a virtualization environment |
US8549518B1 (en) | 2011-08-10 | 2013-10-01 | Nutanix, Inc. | Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment |
US8850130B1 (en) | 2011-08-10 | 2014-09-30 | Nutanix, Inc. | Metadata for managing I/O and storage for a virtualization |
US8601473B1 (en) | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9009106B1 (en) | 2011-08-10 | 2015-04-14 | Nutanix, Inc. | Method and system for implementing writable snapshots in a virtualized storage environment |
US9652265B1 (en) | 2011-08-10 | 2017-05-16 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types |
US8863124B1 (en) | 2011-08-10 | 2014-10-14 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US8930320B2 (en) | 2011-09-30 | 2015-01-06 | Accenture Global Services Limited | Distributed computing backup and recovery system |
CN103186570B (en) * | 2011-12-28 | 2017-08-18 | 富泰华工业(深圳)有限公司 | Data source query system and method based on cloud server |
US9069579B2 (en) * | 2011-12-29 | 2015-06-30 | Vmware, Inc. | N-way synchronization of desktop images |
US8893147B2 (en) | 2012-01-13 | 2014-11-18 | Ca, Inc. | Providing a virtualized replication and high availability environment including a replication and high availability engine |
US9311375B1 (en) | 2012-02-07 | 2016-04-12 | Dell Software Inc. | Systems and methods for compacting a virtual machine file |
US9280380B2 (en) * | 2012-02-29 | 2016-03-08 | Red Hat Israel, Ltd. | Management of I/O reqeusts in virtual machine migration |
US8930747B2 (en) | 2012-03-30 | 2015-01-06 | Sungard Availability Services, Lp | Private cloud replication and recovery |
US8930751B2 (en) | 2012-04-24 | 2015-01-06 | Microsoft Corporation | Initializing replication in a virtual machine |
US8839031B2 (en) | 2012-04-24 | 2014-09-16 | Microsoft Corporation | Data consistency between virtual machines |
US9772866B1 (en) | 2012-07-17 | 2017-09-26 | Nutanix, Inc. | Architecture for implementing a virtualization environment and appliance |
US8938481B2 (en) * | 2012-08-13 | 2015-01-20 | Commvault Systems, Inc. | Generic file level restore from a block-level secondary copy |
US9697093B2 (en) | 2012-09-05 | 2017-07-04 | Veritas Technologies Llc | Techniques for recovering a virtual machine |
US9323759B1 (en) * | 2012-09-28 | 2016-04-26 | Emc Corporation | Multiprocess divided file system backup |
US9465927B2 (en) * | 2012-10-02 | 2016-10-11 | Disney Enterprises, Inc. | Validating input by detecting and recognizing human presence |
US9354907B1 (en) | 2012-10-26 | 2016-05-31 | Veritas Technologies Llc | Optimized restore of virtual machine and virtual disk data |
CN103856503B (en) * | 2012-11-29 | 2017-04-12 | 北京华胜天成科技股份有限公司 | Processing method of file data of NAS cluster system and NAS cluster system |
US9092161B2 (en) * | 2012-12-05 | 2015-07-28 | Red Hat Israel, Ltd. | Selection of allocation policy and format for virtual machine disk images |
US9223597B2 (en) | 2012-12-21 | 2015-12-29 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US9740702B2 (en) | 2012-12-21 | 2017-08-22 | Commvault Systems, Inc. | Systems and methods to identify unprotected virtual machines |
US20140196038A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine management in a data storage system |
US9495404B2 (en) | 2013-01-11 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods to process block-level backup for selective file restoration for virtual machines |
US9286110B2 (en) * | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US20140317411A1 (en) * | 2013-04-18 | 2014-10-23 | Intronis, Inc. | Deduplication of data |
US20140380242A1 (en) * | 2013-06-24 | 2014-12-25 | International Business Machines Corporation | Displaying data protection levels |
US9424056B1 (en) | 2013-06-28 | 2016-08-23 | Emc Corporation | Cross site recovery of a VM |
US9454549B1 (en) | 2013-06-28 | 2016-09-27 | Emc Corporation | Metadata reconciliation |
US9354908B2 (en) | 2013-07-17 | 2016-05-31 | Veritas Technologies, LLC | Instantly restoring virtual machines by providing read/write access to virtual disk before the virtual disk is completely restored |
US9965490B2 (en) * | 2013-07-31 | 2018-05-08 | Oracle International Corporation | Method and system for creating a virtual file system from a unified archive |
US9710386B1 (en) | 2013-08-07 | 2017-07-18 | Veritas Technologies | Systems and methods for prefetching subsequent data segments in response to determining that requests for data originate from a sequential-access computing job |
US9092248B1 (en) | 2013-08-21 | 2015-07-28 | Symantec Corporation | Systems and methods for restoring distributed applications within virtual data centers |
US9858154B1 (en) * | 2013-08-23 | 2018-01-02 | Acronis International Gmbh | Agentless file backup of a virtual machine |
US9939981B2 (en) | 2013-09-12 | 2018-04-10 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system with an enhanced storage manager, including user control and storage management of virtual machines |
US9367562B2 (en) * | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
CN103761168B (en) * | 2014-01-26 | 2017-06-13 | 上海爱数信息技术股份有限公司 | It is a kind of that the method for carrying backup virtual machine is wrapping with based on nfs |
US9542404B2 (en) * | 2014-02-17 | 2017-01-10 | Netapp, Inc. | Subpartitioning of a namespace region |
US9798596B2 (en) | 2014-02-27 | 2017-10-24 | Commvault Systems, Inc. | Automatic alert escalation for an information management system |
US9811427B2 (en) | 2014-04-02 | 2017-11-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9396071B1 (en) * | 2014-06-11 | 2016-07-19 | Emc Corporation | System and method for presenting virtual machine (VM) backup information from multiple backup servers |
US9563520B2 (en) * | 2014-07-11 | 2017-02-07 | Quantum Corporation | File level recovery using virtual machine image level backup with selective compression |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US10360110B2 (en) | 2014-08-06 | 2019-07-23 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or iSCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US10565159B2 (en) | 2014-08-12 | 2020-02-18 | International Business Machines Corporation | Archiving data sets in a volume in a primary storage in a volume image copy of the volume in a secondary storage |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US9430272B2 (en) | 2014-12-17 | 2016-08-30 | Microsoft Technology Licensing, Llc | Efficiently providing virtual machine reference points |
US9547555B2 (en) | 2015-01-12 | 2017-01-17 | Microsoft Technology Licensing, Llc | Change tracking using redundancy in logical time |
US10168947B2 (en) * | 2015-05-07 | 2019-01-01 | Vmware, Inc. | Virtual file system with vnode reconstruction capability |
US10284433B2 (en) * | 2015-06-25 | 2019-05-07 | International Business Machines Corporation | Data synchronization using redundancy detection |
US20160378452A1 (en) * | 2015-06-29 | 2016-12-29 | Mediatek Inc. | Policy-Based Compression of Machine Code Generated by a Virtual Machine |
US10705917B2 (en) * | 2015-06-30 | 2020-07-07 | Veritas Technologies Llc | Consolidated full backup of a restored virtual machine |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10157103B2 (en) | 2015-10-20 | 2018-12-18 | Veeam Software Ag | Efficient processing of file system objects for image level backups |
EP3398076A4 (en) | 2015-12-31 | 2019-01-09 | Razer (Asia-Pacific) Pte. Ltd. | Methods for controlling a computing device, computer-readable media, and computing devices |
US10592350B2 (en) | 2016-03-09 | 2020-03-17 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine restore to cloud operations |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10467103B1 (en) | 2016-03-25 | 2019-11-05 | Nutanix, Inc. | Efficient change block training |
CN106339634A (en) * | 2016-08-30 | 2017-01-18 | 中国民生银行股份有限公司 | Data protection method and device of terminal equipment |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US11281624B1 (en) * | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10409988B2 (en) | 2017-01-20 | 2019-09-10 | Hewlett Packard Enterprise Development Lp | Escalated remediation |
GB2572523A (en) * | 2017-01-30 | 2019-10-02 | Walmart Apollo Llc | Systems and methods for a specialized computer file system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10331528B2 (en) | 2017-03-02 | 2019-06-25 | Hewlett Packard Enterprise Development Lp | Recovery services for computing systems |
US10877851B2 (en) | 2017-03-24 | 2020-12-29 | Commvault Systems, Inc. | Virtual machine recovery point selection |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
CN107273183A (en) * | 2017-06-12 | 2017-10-20 | 上海优刻得信息科技有限公司 | Disk bleach-out process, device, system and the server of loaded virtual machine mirror image |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
CN108052342A (en) * | 2017-12-12 | 2018-05-18 | 杭州华为数字技术有限公司 | Partition table restorative procedure, device and electronic equipment |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10936442B2 (en) * | 2018-07-06 | 2021-03-02 | EMC IP Holding Company LLC | Simultaneous file level recovery from multiple backups using a proxy virtual machine |
CN109164988A (en) * | 2018-08-30 | 2019-01-08 | 上海交通大学 | Processor-based virtual machine snapshot method and system |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US11249791B2 (en) * | 2019-04-30 | 2022-02-15 | Acronis International Gmbh | System and method of selectively restoring a computer system to an operational state |
CN110362432B (en) * | 2019-07-23 | 2023-12-29 | 深信服科技股份有限公司 | Backup method, device, equipment and storage medium |
US11681652B2 (en) * | 2019-12-06 | 2023-06-20 | EMC IP Holding Company LLC | Methods, electronic devices and computer program products for accessing data |
CN111104392B (en) * | 2019-12-12 | 2021-11-02 | 京东数字科技控股有限公司 | Database migration method and device, electronic equipment and storage medium |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11500669B2 (en) | 2020-05-15 | 2022-11-15 | Commvault Systems, Inc. | Live recovery of virtual machines in a public cloud computing environment |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
CN112395132A (en) * | 2020-11-13 | 2021-02-23 | 苏州元核云技术有限公司 | Method, system and computer storage medium for file backup |
CN112612576B (en) * | 2020-12-23 | 2022-08-30 | 新华三大数据技术有限公司 | Virtual machine backup method and device, electronic equipment and storage medium |
CN114629924B (en) * | 2022-04-13 | 2024-02-13 | 北京赛博云睿智能科技有限公司 | Method for synchronous operation of service data by container |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032691A1 (en) * | 2000-05-26 | 2002-03-14 | Infolibria, Inc. | High performance efficient subsystem for data object storage |
US20030018878A1 (en) * | 2001-07-19 | 2003-01-23 | Sean Matthew Dorward | Method and apparatus for archival data storage |
US20030056139A1 (en) * | 2001-09-20 | 2003-03-20 | Bill Murray | Systems and methods for data backup over a network |
US6629110B2 (en) * | 2000-01-10 | 2003-09-30 | Connected Corporation | Administration of a differential backup system in a client-server environment |
US6865655B1 (en) * | 2002-07-30 | 2005-03-08 | Sun Microsystems, Inc. | Methods and apparatus for backing up and restoring data portions stored in client computer systems |
US20050060609A1 (en) * | 2003-09-12 | 2005-03-17 | Mohamad El-Batal | Storage recovery using a delta log |
US6871271B2 (en) * | 2000-12-21 | 2005-03-22 | Emc Corporation | Incrementally restoring a mass storage device to a prior state |
US20050097318A1 (en) * | 2001-03-21 | 2005-05-05 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US6948039B2 (en) * | 2001-12-14 | 2005-09-20 | Voom Technologies, Inc. | Data backup and restoration using dynamic virtual storage |
US20060064444A1 (en) * | 2004-09-22 | 2006-03-23 | Microsoft Corporation | Method and system for synthetic backup and restore |
US20060075294A1 (en) * | 2004-09-22 | 2006-04-06 | International Business Machines Coproration | System and Method for Reliably Storing Data and Providing Efficient Incremental Backup and Asynchronous Mirroring by Preferentially Handling New Data |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7107486B2 (en) * | 2004-04-08 | 2006-09-12 | Hitachi, Ltd. | Restore method for backup |
US7152078B2 (en) * | 2001-12-27 | 2006-12-19 | Hitachi, Ltd. | Systems, methods and computer program products for backup and restoring storage volumes in a storage area network |
US20070083722A1 (en) * | 2005-10-06 | 2007-04-12 | Acronis, Inc. | Fast incremental backup method and system |
US20070208918A1 (en) * | 2006-03-01 | 2007-09-06 | Kenneth Harbin | Method and apparatus for providing virtual machine backup |
US20080120459A1 (en) * | 2006-11-22 | 2008-05-22 | Yasunori Kaneda | Method and apparatus for backup and restore in a dynamic chunk allocation storage system |
US20080222420A1 (en) * | 1999-06-08 | 2008-09-11 | Intertrust Technologies Corp. | Systems and Methods for Authenticating and Protecting the Integrity of Data Streams and Other Data |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
US20100049930A1 (en) * | 2008-08-25 | 2010-02-25 | Vmware, Inc. | Managing Backups Using Virtual Machines |
US20100106691A1 (en) * | 2008-09-25 | 2010-04-29 | Kenneth Preslan | Remote backup and restore |
US7810133B2 (en) * | 2002-08-23 | 2010-10-05 | Exit-Cube, Inc. | Encrypting operating system |
US20110035376A1 (en) * | 2007-07-31 | 2011-02-10 | Kirshenbaum Evan R | Storing nodes representing respective chunks of files in a data store |
US20110113194A1 (en) * | 2004-11-05 | 2011-05-12 | Data Robotics, Inc. | Filesystem-Aware Block Storage System, Apparatus, and Method |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020147735A1 (en) * | 2000-11-22 | 2002-10-10 | Intra Inc. | Method and system for optimizing file loading in a data communication network |
US6745192B1 (en) * | 2001-08-03 | 2004-06-01 | Networks Associates Technology Inc. | System and method for providing a multi-tiered hierarchical transient message store accessed using multiply hashed unique filenames |
US20040078641A1 (en) * | 2002-09-23 | 2004-04-22 | Hewlett-Packard Company | Operating system-independent file restore from disk image |
AU2004286660B2 (en) * | 2003-10-27 | 2011-06-16 | Hitachi Vantara, LLC | Policy-based management of a redundant array of independent nodes |
US7555732B2 (en) * | 2004-03-12 | 2009-06-30 | Steven Van der Hoeven | Apparatus method and system for a data entry interface |
US7657581B2 (en) * | 2004-07-29 | 2010-02-02 | Archivas, Inc. | Metadata management for fixed content distributed data storage |
US8959299B2 (en) * | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US20080104146A1 (en) * | 2006-10-31 | 2008-05-01 | Rebit, Inc. | System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage |
US7917469B2 (en) * | 2006-11-08 | 2011-03-29 | Hitachi Data Systems Corporation | Fast primary cluster recovery |
US20080250085A1 (en) * | 2007-04-09 | 2008-10-09 | Microsoft Corporation | Backup system having preinstalled backup data |
US8060476B1 (en) * | 2008-07-14 | 2011-11-15 | Quest Software, Inc. | Backup systems and methods for a virtual computing environment |
-
2010
- 2010-04-12 US US12/758,371 patent/US8135748B2/en active Active
- 2010-04-12 US US12/758,326 patent/US8682862B2/en active Active
- 2010-04-12 US US12/758,245 patent/US20100262797A1/en not_active Abandoned
-
2012
- 2012-03-07 US US13/414,119 patent/US20120221529A1/en not_active Abandoned
-
2014
- 2014-03-17 US US14/215,192 patent/US20140201156A1/en not_active Abandoned
Patent Citations (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080222420A1 (en) * | 1999-06-08 | 2008-09-11 | Intertrust Technologies Corp. | Systems and Methods for Authenticating and Protecting the Integrity of Data Streams and Other Data |
US6629110B2 (en) * | 2000-01-10 | 2003-09-30 | Connected Corporation | Administration of a differential backup system in a client-server environment |
US20020032691A1 (en) * | 2000-05-26 | 2002-03-14 | Infolibria, Inc. | High performance efficient subsystem for data object storage |
US6871271B2 (en) * | 2000-12-21 | 2005-03-22 | Emc Corporation | Incrementally restoring a mass storage device to a prior state |
US20050097318A1 (en) * | 2001-03-21 | 2005-05-05 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US20030018878A1 (en) * | 2001-07-19 | 2003-01-23 | Sean Matthew Dorward | Method and apparatus for archival data storage |
US6912645B2 (en) * | 2001-07-19 | 2005-06-28 | Lucent Technologies Inc. | Method and apparatus for archival data storage |
US20030056139A1 (en) * | 2001-09-20 | 2003-03-20 | Bill Murray | Systems and methods for data backup over a network |
US7134041B2 (en) * | 2001-09-20 | 2006-11-07 | Evault, Inc. | Systems and methods for data backup over a network |
US6948039B2 (en) * | 2001-12-14 | 2005-09-20 | Voom Technologies, Inc. | Data backup and restoration using dynamic virtual storage |
US7152078B2 (en) * | 2001-12-27 | 2006-12-19 | Hitachi, Ltd. | Systems, methods and computer program products for backup and restoring storage volumes in a storage area network |
US7093086B1 (en) * | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US6865655B1 (en) * | 2002-07-30 | 2005-03-08 | Sun Microsystems, Inc. | Methods and apparatus for backing up and restoring data portions stored in client computer systems |
US7810133B2 (en) * | 2002-08-23 | 2010-10-05 | Exit-Cube, Inc. | Encrypting operating system |
US20050060609A1 (en) * | 2003-09-12 | 2005-03-17 | Mohamad El-Batal | Storage recovery using a delta log |
US7107486B2 (en) * | 2004-04-08 | 2006-09-12 | Hitachi, Ltd. | Restore method for backup |
US20060064444A1 (en) * | 2004-09-22 | 2006-03-23 | Microsoft Corporation | Method and system for synthetic backup and restore |
US20060075294A1 (en) * | 2004-09-22 | 2006-04-06 | International Business Machines Coproration | System and Method for Reliably Storing Data and Providing Efficient Incremental Backup and Asynchronous Mirroring by Preferentially Handling New Data |
US20110113194A1 (en) * | 2004-11-05 | 2011-05-12 | Data Robotics, Inc. | Filesystem-Aware Block Storage System, Apparatus, and Method |
US20070083722A1 (en) * | 2005-10-06 | 2007-04-12 | Acronis, Inc. | Fast incremental backup method and system |
US20070208918A1 (en) * | 2006-03-01 | 2007-09-06 | Kenneth Harbin | Method and apparatus for providing virtual machine backup |
US20080120459A1 (en) * | 2006-11-22 | 2008-05-22 | Yasunori Kaneda | Method and apparatus for backup and restore in a dynamic chunk allocation storage system |
US20110035376A1 (en) * | 2007-07-31 | 2011-02-10 | Kirshenbaum Evan R | Storing nodes representing respective chunks of files in a data store |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
US20100049930A1 (en) * | 2008-08-25 | 2010-02-25 | Vmware, Inc. | Managing Backups Using Virtual Machines |
US20100106691A1 (en) * | 2008-09-25 | 2010-04-29 | Kenneth Preslan | Remote backup and restore |
Cited By (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8285817B1 (en) * | 2006-03-20 | 2012-10-09 | Netapp, Inc. | Migration engine for use in a logical namespace of a storage system environment |
US8892676B2 (en) * | 2008-11-07 | 2014-11-18 | Compellent Technologies | Thin import for a data storage system |
US20100121937A1 (en) * | 2008-11-07 | 2010-05-13 | Aszmann Lawrence E | Thin import for a data storage system |
US8930423B1 (en) * | 2008-12-30 | 2015-01-06 | Symantec Corporation | Method and system for restoring encrypted files from a virtual machine image |
US20110016132A1 (en) * | 2009-07-14 | 2011-01-20 | Fujitsu Limited | Archive device |
US8423556B2 (en) * | 2009-07-14 | 2013-04-16 | Fujitsu Limited | Archive device |
US8655844B1 (en) | 2009-09-30 | 2014-02-18 | Emc Corporation | File version tracking via signature indices |
US8701193B1 (en) | 2009-09-30 | 2014-04-15 | Emc Corporation | Malware detection via signature indices |
US8516023B1 (en) * | 2010-06-03 | 2013-08-20 | Netapp, Inc. | Context based file system |
US9529998B2 (en) | 2010-08-18 | 2016-12-27 | Security First Corp. | Systems and methods for securing virtual machine computing environments |
US9165137B2 (en) | 2010-08-18 | 2015-10-20 | Security First Corp. | Systems and methods for securing virtual machine computing environments |
US20140006355A1 (en) * | 2011-03-31 | 2014-01-02 | Hitachi Solutions, Ltd. | Information processing system, backup management method and program |
US9417811B2 (en) | 2012-03-07 | 2016-08-16 | International Business Machines Corporation | Efficient inline data de-duplication on a storage system |
US9628438B2 (en) | 2012-04-06 | 2017-04-18 | Exablox | Consistent ring namespaces facilitating data storage and organization in network infrastructures |
US9916456B2 (en) * | 2012-04-06 | 2018-03-13 | Security First Corp. | Systems and methods for securing and restoring virtual machines |
US20130268931A1 (en) * | 2012-04-06 | 2013-10-10 | Security First Corp. | Systems and methods for securing and restoring virtual machines |
US8776236B2 (en) * | 2012-04-11 | 2014-07-08 | Northrop Grumman Systems Corporation | System and method for providing storage device-based advanced persistent threat (APT) protection |
US20130276122A1 (en) * | 2012-04-11 | 2013-10-17 | James L. Sowder | System and method for providing storage device-based advanced persistent threat (apt) protection |
US20130297722A1 (en) * | 2012-05-02 | 2013-11-07 | Microsoft Corporation | Integrated format conversion during disk upload |
US9646020B2 (en) * | 2012-05-02 | 2017-05-09 | Microsoft Technology Licensing, Llc | Integrated format conversion during disk upload |
US8977828B2 (en) | 2012-06-21 | 2015-03-10 | Ca, Inc. | Data recovery using conversion of backup to virtual disk |
US8850146B1 (en) | 2012-07-27 | 2014-09-30 | Symantec Corporation | Backup of a virtual machine configured to perform I/O operations bypassing a hypervisor |
US20140059312A1 (en) * | 2012-08-27 | 2014-02-27 | Fujitsu Limited | Recording medium, computer, and information processing system |
US9032248B1 (en) * | 2012-10-04 | 2015-05-12 | Amazon Technologies, Inc. | Memory write tracking for virtual machines |
US9262212B2 (en) | 2012-11-02 | 2016-02-16 | The Boeing Company | Systems and methods for migrating virtual machines |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
US10067692B2 (en) * | 2013-05-31 | 2018-09-04 | International Business Machines Corporation | Method and apparatus for backing up and restoring cross-virtual machine application |
US9514137B2 (en) | 2013-06-12 | 2016-12-06 | Exablox Corporation | Hybrid garbage collection |
WO2014205286A1 (en) * | 2013-06-19 | 2014-12-24 | Exablox Corporation | Data scrubbing in cluster-based storage systems |
US9715521B2 (en) | 2013-06-19 | 2017-07-25 | Storagecraft Technology Corporation | Data scrubbing in cluster-based storage systems |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
WO2015057831A1 (en) * | 2013-10-15 | 2015-04-23 | Unitreds Inc. | Systems and methods for backing up a live virtual machine |
US10248556B2 (en) | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
US10558484B2 (en) | 2014-12-09 | 2020-02-11 | The Boeing Company | Systems and methods for securing virtual machines |
US9817686B2 (en) | 2014-12-09 | 2017-11-14 | The Boeing Company | Systems and methods for securing virtual machines |
US10078555B1 (en) * | 2015-04-14 | 2018-09-18 | EMC IP Holding Company LLC | Synthetic full backups for incremental file backups |
US10474654B2 (en) | 2015-08-26 | 2019-11-12 | Storagecraft Technology Corporation | Structural data transfer over a network |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
CN106202173A (en) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | The Intelligent drainage weighing method of a kind of file repository storage and system |
US11099930B2 (en) | 2017-06-27 | 2021-08-24 | EMC IP Holding Company LLC | Detect and triage data integrity issue for virtual machine |
US10776197B1 (en) * | 2017-06-27 | 2020-09-15 | EMC IP Holding Company LLC | Detect and triage data integrity issue for virtual machine |
US11567826B2 (en) | 2017-06-27 | 2023-01-31 | EMC IP Holding Company LLC | Detect and triage data integrity issue for virtual machine |
US10872069B2 (en) * | 2019-01-22 | 2020-12-22 | Commvault Systems, Inc. | File indexing for virtual machine backups in a data storage management system |
US11347707B2 (en) | 2019-01-22 | 2022-05-31 | Commvault Systems, Inc. | File indexing for virtual machine backups based on using live browse features |
US11449486B2 (en) | 2019-01-22 | 2022-09-20 | Commvault Systems, Inc. | File indexing for virtual machine backups in a data storage management system |
US20200341854A1 (en) * | 2019-04-26 | 2020-10-29 | EMC IP Holding Company LLC | Efficient Method to Find Changed Data between Indexed Data and New Backup |
US11625304B2 (en) * | 2019-04-26 | 2023-04-11 | EMC IP Holding Company LLC | Efficient method to find changed data between indexed data and new backup |
US11474732B2 (en) * | 2020-05-12 | 2022-10-18 | Hitachi, Ltd. | Security system, host system, and backup method |
US20220342773A1 (en) * | 2021-04-21 | 2022-10-27 | EMC IP Holding Company LLC | Globally unique way to identify a resource |
US11888964B1 (en) * | 2022-08-11 | 2024-01-30 | Beijing Tenafe Electronic Technology Co., Ltd. | Device and method for data processing |
US20240056289A1 (en) * | 2022-08-11 | 2024-02-15 | Beijing Tenafe Electronic Technology Co., Ltd. | Device and method for data processing |
Also Published As
Publication number | Publication date |
---|---|
US8682862B2 (en) | 2014-03-25 |
US20100262586A1 (en) | 2010-10-14 |
US20140201156A1 (en) | 2014-07-17 |
US20100262585A1 (en) | 2010-10-14 |
US20120221529A1 (en) | 2012-08-30 |
US8135748B2 (en) | 2012-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100262797A1 (en) | Virtual machine data backup | |
US8386521B2 (en) | System for backing up and restoring data | |
US8315985B1 (en) | Optimizing the de-duplication rate for a backup stream | |
US9740565B1 (en) | System and method for maintaining consistent points in file systems | |
US8924354B2 (en) | Block level data replication | |
US7797279B1 (en) | Merging of incremental data streams with prior backed-up data | |
US10075523B2 (en) | Efficient storage of data in a dispersed storage network | |
US8667032B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
US10210169B2 (en) | System and method for verifying consistent points in file systems | |
EP2691847B1 (en) | System and method for maintaining consistent points in file systems using a prime dependency list | |
US11372726B2 (en) | Method and system for adaptive incrementally updated backups with dynamic data file detection | |
US7949630B1 (en) | Storage of data addresses with hashes in backup systems | |
US11580015B2 (en) | Garbage collection for a deduplicated cloud tier using functions | |
US11513907B2 (en) | Method and system for resuming interrupted database backup operations using checkpoints | |
US11360699B1 (en) | Method and system for improved write performance in erasure-coded storage systems | |
US11232002B2 (en) | Method and system for seamless database backup live-mounting using self-contained database backups | |
US20200192760A1 (en) | Apparatus and method for deduplicating data | |
US20230305994A1 (en) | Methods and Systems for Archiving File System Data Stored by a Networked Storage System | |
US20210367932A1 (en) | Efficient storage of data in a dispersed storage network | |
US11385806B1 (en) | Methods and systems for efficient erasure-coded storage systems | |
US11593215B2 (en) | Method and system for generating immutable backups with configurable retention spans | |
CN113728302A (en) | Cloud layered garbage collection for de-duplication | |
US11436107B2 (en) | Recovery management system and method for restoring a computing resource |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: PHD VIRTUAL TECHNOLOGIES, NEW JERSEY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROSIKIEWICZ, JAMES;MCKELVEY, RONALD T;MITTELL, ALEXANDER D;REEL/FRAME:024216/0988 Effective date: 20100409 |
|
AS | Assignment |
Owner name: SILICON VALLEY BANK, CALIFORNIA Free format text: SECURITY AGREEMENT;ASSIGNOR:PHD VIRTUAL TECHNOLOGIES INC.;REEL/FRAME:029877/0619 Effective date: 20130213 |
|
AS | Assignment |
Owner name: WF FUND IV LIMITED PARTNERSHIP (C/O/B AS WELLINGTO Free format text: SECURITY AGREEMENT;ASSIGNOR:PHD VIRTUAL TECHNOLOGIES, INC.;REEL/FRAME:029940/0143 Effective date: 20130306 |
|
AS | Assignment |
Owner name: PHD VIRTUAL TECHNOLOGIES, INC., PENNSYLVANIA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:032448/0563 Effective date: 20131205 |
|
AS | Assignment |
Owner name: PHD VIRTUAL TECHNOLOGIES, INC., PENNSYLVANIA Free format text: RELEASE OF SECURITY INTEREST;ASSIGNOR:WF FUND IV LIMITED PARTNERSHIP (C/O/B WELLINGTON FINANCIAL LP AND WELLINGTON FINANCIAL FUND IV);REEL/FRAME:032482/0116 Effective date: 20140319 |
|
AS | Assignment |
Owner name: SQUARE 1 BANK, NORTH CAROLINA Free format text: SECURITY INTEREST;ASSIGNOR:PHD VIRTUAL TECHNOLOGIES INC.;REEL/FRAME:032507/0091 Effective date: 20140319 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: UNITRENDS, INC., SOUTH CAROLINA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:PACIFIC WESTERN BANK, AS SUCCESSOR IN INTEREST TO SQUARE 1 BANK;REEL/FRAME:044713/0081 Effective date: 20180119 |
|
AS | Assignment |
Owner name: DATTO, LLC, CONNECTICUT Free format text: CHANGE OF NAME;ASSIGNOR:DATTO, INC.;REEL/FRAME:065385/0256 Effective date: 20230804 |