Abstract:
Exposing a proprietary image backup to a hypervisor as a disk file that is bootable by the hypervisor. In one example embodiment, a method of exposing a proprietary image backup to a hypervisor as a disk file that is bootable by the hypervisor may include identifying the proprietary image backup having a proprietary format and storing an operating system, identifying a plugin file corresponding to the proprietary image backup, reconfiguring the operating system to cause the operating system to be bootable when using hardware emulated by the hypervisor, gathering operating system data from the proprietary image backup, reformatting the operating system data into a native format of the hypervisor, and booting the operating system in a virtual machine of the hypervisor.
Abstract:
Cataloging file system-level changes to a source storage between image backups of the source storage. In one example embodiment, a method for cataloging file system-level changes to a source storage between image backups of the source storage may include obtaining first file system metadata (FSM) associated with a first image backup of the source storage that represents a first point in time, obtaining second FSM associated with a second image backup of the source storage that represents a second point in time, identifying a set of blocks that changed in the source storage between the first point in time and the second point in time, analyzing the set of blocks, the first FSM, and the second FSM, and cataloging files and/or directories that changed in the source storage between the first point in time and the second point in time based on the analyzing.
Abstract:
Capturing post-snapshot quiescence writes in a linear image backup chain. In one example embodiment, a method for capturing post-snapshot quiescence writes in a linear image backup chain may include taking a first snapshot of a source storage at a first point in time using a Volume Shadow Copy Service (VSS), identifying a first set of block positions of blocks that are allocated in the source storage at the first point in time, identifying a second set of block positions of blocks that are written to the first snapshot during post-snapshot quiescence of the first snapshot by the VSS or by one or more VSS writers, resulting in a first quiesced snapshot, copying the blocks in the first set from the first snapshot to a full image backup, and copying the blocks in the second set from the first quiesced snapshot to a first incremental image backup.
Abstract:
Detecting modifications to a storage that occur in an alternate operating environment. In one example embodiment, a method for detecting modifications to a storage that occur in an alternate operating environment may include tracking, in a modify map, modifications to a storage that occur during operation of a primary operating environment, identifying a first most recent transaction identifier in a journal of a file system of the storage prior to closing of the storage by the primary operating environment, upon opening of the storage by the primary operating environment, identifying a second most recent transaction identifier in the journal, determining that the second most recent transaction identifier does not match the first most recent transaction identifier, concluding that the storage was modified in an alternate operating environment between the closing and the opening of the storage by the primary operating environment, and invalidating the modify map.
Abstract:
Client-side encryption in a deduplication backup system. In one example embodiment, a method includes a backup phase in which various steps are performed for each allocated plain text block stored in a source storage. One step includes hashing, using a first cryptographic hash function, the plain text block to generate a first hash. Another step includes hashing, using a second cryptographic hash function, the first hash to generate a second hash. Another step includes searching a key-value table of a deduplication storage to determine whether the second hash matches any key in the key-value table. Another step includes, upon determining that the second hash does not match any key in the key-value table, encrypting, using an encrypt/decrypt function, the plain text block using the first hash as an encryption password and inserting a key-value pair into the key-value table with the key being the second hash and the value being the encrypted block.
Abstract:
Head start population of an image backup. In one example embodiment, a method for head start population of an image backup may include tracking blocks that are modified in a source storage between a first point in time and a second point in time, head start copying a first portion of the modified blocks into the image backup prior to the second point in time, activating a snapshot on the source storage at the second point in time where the snapshot represents a state of the source storage at the second point in time, and copying, subsequent to the second point in time, from the snapshot and into the image backup, a second portion of the modified blocks that were not yet copied into the image backup by the second point in time.
Abstract:
Capturing post-snapshot quiescence writes in an image backup. In one example embodiment, a method for capturing post-snapshot quiescence writes in an image backup may include taking a first snapshot of a source storage at a first point in time, identifying a first set of block positions of blocks that are allocated in the source storage at the first point in time, identifying a second set of block positions of blocks that are written to the first snapshot during post-snapshot quiescence of the first snapshot, resulting in a first quiesced snapshot, calculating a third set of block positions by performing a Boolean OR operation on the first set of block positions and the second set of block positions, and copying blocks in the third set of block positions from the first snapshot to a full image backup.
Abstract:
Virtual defragmentation of a storage. In one example embodiment, a method for virtual defragmentation of a storage includes various steps. For example, the method includes intercepting a move command directed to a storage during a defragmentation of the storage. The move command specifies an actual location of a block and a defrag location for the block in the storage. The method also includes updating a virtual defragmentation map to record the actual location of the block and the defrag location for the block. The method further includes preventing the block from being moved to the defrag location. The method also includes allowing file system metadata of the storage to be updated to falsely reflect that the block has been moved to the defrag location.
Abstract:
Hash value comparison during crash-tolerant incremental change tracking between backups of a source storage. In one example embodiment, a method includes assigning each block in a source storage into one of multiple zones, creating a nonvolatile zone map, tracking each of the zones that is changed between a first point in time and a second point in time, identifying, as potentially changed zone blocks, the blocks in the source storage assigned to any zone marked as changed in the nonvolatile zone map, identifying, as potentially outdated backup blocks, the most recently backed-up blocks in one or more prior backups that correspond to the potentially changed zone blocks, calculating source hash values of the potentially changed zone blocks, calculating backup hash values of the potentially outdated backup blocks, and comparing the source hash values to the backup hash values to determine which blocks in the source storage actually changed.
Abstract:
Software activation and revalidation. For example, a method for software activation and revalidation may include collecting machine configuration information from a machine on which a software application has been at least partially installed, sending the machine configuration information and a product key to an activation server, applying activation rules to determine whether the product key is valid for the machine configuration information, if the product key is valid for the machine configuration information, activating the software application by sending, from the activation server to the machine, license data that authorizes access to the software application and that contains the activation rules, periodically applying, at the machine, the activation rules to newly-collected machine configuration information to determine whether the product key remains valid for the newly-collected machine configuration information, and if the product key remains valid, revalidating, at the machine, the license data to authorize continued access to the software application.