Systems and methods for snapshot-less backups
AssigneeEMC IP Holding Company LLC
InventorsKedar Patwardhan, Kiran Dudala
Life of this patent
Estimating the term…
Abstract
A first snapshot of a primary disk of a virtual machine (VM) is requested at a beginning of a current backup cycle. A first indication that the first snapshot has been created includes a first listing of changed blocks since a last snapshot was requested. The first snapshot is deleted. Blocks listed in the first listing are copied while the first snapshot is absent. After the copying, a second snapshot is requested. A second indication that the second snapshot has been created includes a second listing of changed blocks since the first snapshot. Blocks listed in both the first and second listings are copied while the second snapshot is present.
Claims17
A system comprising:
- a processor;
- and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
- requesting a first snapshot of a primary disk of a virtual machine at a beginning of a current backup cycle;
- receiving a first indication that the first snapshot has been created, the first indication comprising a first listing of blocks on the primary disk that have changed since a last snapshot, before the first snapshot, was requested;
- requesting deletion of the first snapshot;
- copying, while the first snapshot is absent, blocks listed in the first listing of changed blocks from the primary disk to a backup media;
- after copying the blocks listed in the first listing of changed blocks, requesting a second snapshot of the primary disk for the current backup cycle;
- receiving a second indication that the second snapshot has been created, the second indication comprising a second listing of blocks on the primary disk that have changed since the first snapshot was requested;
- and
- copying, while the second snapshot is present, blocks listed in both the first and second listings of changed blocks from the primary disk to the backup media to merge changes made to the primary disk while the first snapshot was absent, thereby making the current backup cycle consistent, wherein the current backup cycle comprises a first phase, and a second phase, after the first phase, the first phase comprising copying the blocks listed in the first listing from the primary disk to the backup media, and wherein the processor carries out the steps of:
- determining, during the second phase, whether a plurality of conditions exist, wherein a first condition exists when a particular block is listed in the first and second listings, the particular block having been marked as changed since a last backup cycle and during the first phase,
- a second condition exists when the particular block is listed in the first listing and is not listed in the second listing, the particular block having been marked as changed since a last backup cycle and not marked as changed during the first phase, and
- a third condition exists when the particular block is not listed in the first listing and is listed in the second listing, the particular block not having been marked as changed since the last backup cycle and having been marked as changed during the first phase,
- if the first condition exists, repeating the copying of the particular block from the primary disk to the backup media to update a corresponding block on the backup media with changes made to the first block during the first phase;
- if the second condition exists, not repeating the copying of the particular block from the primary disk to the backup media;
- and
- if the third condition exists, not copying the particular block from the primary disk to the backup media for the current backup cycle.
A method comprising:
- requesting a first snapshot of a primary disk of a virtual machine at a beginning of a current backup cycle;
- receiving a first indication that the first snapshot has been created, the first indication comprising a first listing of blocks on the primary disk that have changed since a last snapshot, before the first snapshot, was requested;
- requesting deletion of the first snapshot;
- copying, while the first snapshot is absent, blocks listed in the first listing of changed blocks from the primary disk to a backup media;
- after copying the blocks listed in the first listing of changed blocks, requesting a second snapshot of the primary disk for the current backup cycle;
- receiving a second indication that the second snapshot has been created, the second indication comprising a second listing of blocks on the primary disk that have changed since the first snapshot was requested;
- and
- copying, while the second snapshot is present, blocks listed in both the first and second listings of changed blocks from the primary disk to the backup media to merge changes made to the primary disk while the first snapshot was absent, thereby making the current backup cycle consistent, wherein the current backup cycle comprises a first phase, and a second phase, after the first phase, the first phase comprising copying the blocks listed in the first listing from the primary disk to the backup media, and wherein the method comprises:
- determining, during the second phase, whether a plurality of conditions exist, wherein a first condition exists when a particular block is listed in the first and second listings, the particular block having been marked as changed since a last backup cycle and during the first phase,
- a second condition exists when the particular block is listed in the first listing and is not listed in the second listing, the particular block having been marked as changed since a last backup cycle and not marked as changed during the first phase, and
- a third condition exists when the particular block is not listed in the first listing and is listed in the second listing, the particular block not having been marked as changed since the last backup cycle and having been marked as changed during the first phase,
- if the first condition exists, repeating the copying of the particular block from the primary disk to the backup media to update a corresponding block on the backup media with changes made to the first block during the first phase;
- if the second condition exists, not repeating the copying of the particular block from the primary disk to the backup media;
- and
- if the third condition exists, not copying the particular block from the primary disk to the backup media for the current backup cycle.
A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:
- requesting a first snapshot of a primary disk of a virtual machine at a beginning of a current backup cycle;
- receiving a first indication that the first snapshot has been created, the first indication comprising a first listing of blocks on the primary disk that have changed since a last snapshot, before the first snapshot, was requested;
- requesting deletion of the first snapshot;
- copying, while the first snapshot is absent, blocks listed in the first listing of changed blocks from the primary disk to a backup media;
- after copying the blocks listed in the first listing of changed blocks, requesting a second snapshot of the primary disk for the current backup cycle;
- receiving a second indication that the second snapshot has been created, the second indication comprising a second listing of blocks on the primary disk that have changed since the first snapshot was requested;
- and
- copying, while the second snapshot is present, blocks listed in both the first and second listings of changed blocks from the primary disk to the backup media to merge changes made to the primary disk while the first snapshot was absent, thereby making the current backup cycle consistent, wherein the current backup cycle comprises a first phase, and a second phase, after the first phase, the first phase comprising copying the blocks listed in the first listing from the primary disk to the backup media, and wherein the method comprises:
- determining, during the second phase, whether a plurality of conditions exist, wherein a first condition exists when a particular block is listed in the first and second listings, the particular block having been marked as changed since a last backup cycle and during the first phase,
- a second condition exists when the particular block is listed in the first listing and is not listed in the second listing, the particular block having been marked as changed since a last backup cycle and not marked as changed during the first phase, and
- a third condition exists when the particular block is not listed in the first listing and is listed in the second listing, the particular block not having been marked as changed since the last backup cycle and having been marked as changed during the first phase,
- if the first condition exists, repeating the copying of the particular block from the primary disk to the backup media to update a corresponding block on the backup media with changes made to the first block during the first phase;
- if the second condition exists, not repeating the copying of the particular block from the primary disk to the backup media;
- and
- if the third condition exists, not copying the particular block from the primary disk to the backup media for the current backup cycle.
Dependencies are inferred from the claim text.