×

Incremental block level backup

  • US 9,558,073 B2
  • Filed: 04/13/2015
  • Issued: 01/31/2017
  • Est. Priority Date: 10/18/2013
  • Status: Active Grant
First Claim
Patent Images

1. A system comprising:

  • a backup server comprising one or more processors configured to;

    retrieve an original metadata file from a metadata server, wherein the metadata file comprises an ordered list of block identifiers for data blocks of the volume, wherein each block identifier is used to access a data block stored on a block server, and wherein each block identifier is a hash based on content of its corresponding data block;

    retrieve a copy of all data of the volume based on the original metadata file;

    retrieve a first metadata file, wherein the first metadata file was created separately from the original metadata file;

    compare a block identifier of the first metadata file to a corresponding block identifier of the original metadata file to determine a difference between the first and original block identifiers, wherein the difference indicates that a data block corresponding to the first block identifier has changed;

    retrieve, using the block identifier that identifies a storage location of the changed data block, the changed data block based on the comparison of the first and original block identifiers, wherein the original metadata file comprises an original hash tree, wherein the first metadata file comprises a first hash tree;

    determine a subtree root node of the first hash tree is different than an original root node of the original hash tree;

    add child nodes of the subtree root node to a first data structure;

    for each child node in the data structure;

    determine a corresponding node in the original hash tree;

    determine if the child node is different than the corresponding node;

    determine if the child node is a leaf node or a non-leaf node based on the determination that the child node is different than the corresponding node;

    add the child node to the first data structure based on the determination that the child node is a non-leaf node; and

    add the child node to a second data structure based on the determination that the child node is a leaf node; and

    for each node in the second data structure retrieve a corresponding data block using the block identifier.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×