Efficient and reliable virtual volume mapping
First Claim
1. A snapshot tree structure, comprising:
- a base volume storing a current user data;
a first snapshot descending from the base volume, the first snapshot being created at a first time, the first snapshot comprising;
a first table comprising a first plurality of entries corresponding to first portions of block addresses;
a second table comprising a second plurality of entries corresponding to second portions of the block addresses;
a third table comprising a third plurality of entries corresponding to third portions of the block addresses;
wherein;
one of the first plurality of entries contains a pointer to the second table;
one of the second plurality of entries contains a pointer to the third table;
one of the third plurality of entries contains a pointer to a data of the base volume at the first time before the data is modified in the base volume;
a second snapshot descending from the first snapshot, the second snapshot being created at a second time earlier than the first time.
4 Assignments
0 Petitions
Accused Products
Abstract
A snapshot tree structure includes a base volume storing a current user data, a first snapshot descending from the base volume, and a second snapshot descending from the first snapshot, wherein the second snapshot was created prior to the first snapshot. The first snapshot includes a first table corresponding to first portions of block addresses, a second table corresponding to second portions of the block addresses, and a third table to third portions of the block addresses. The first table includes an entry with a pointer to the second table. The second table includes an entry with a pointer to the third table. The third table includes an entry with a pointer to a data of the base volume before the data is modified in the base volume.
210 Citations
7 Claims
-
1. A snapshot tree structure, comprising:
-
a base volume storing a current user data; a first snapshot descending from the base volume, the first snapshot being created at a first time, the first snapshot comprising; a first table comprising a first plurality of entries corresponding to first portions of block addresses; a second table comprising a second plurality of entries corresponding to second portions of the block addresses; a third table comprising a third plurality of entries corresponding to third portions of the block addresses; wherein; one of the first plurality of entries contains a pointer to the second table; one of the second plurality of entries contains a pointer to the third table; one of the third plurality of entries contains a pointer to a data of the base volume at the first time before the data is modified in the base volume; a second snapshot descending from the first snapshot, the second snapshot being created at a second time earlier than the first time. - View Dependent Claims (2, 3, 4)
-
-
5. A method for creating a snapshot tree structure, comprising:
-
creating a base volume; at a first time, creating a first snapshot descending from the base volume, said creating a first snapshot comprising; creating a first table comprising a first plurality of entries corresponding to first portions of block addresses; after said creating a first snapshot, receiving a write to a data block in the base volume at a block address; in response to said receiving a write, copying an original value of the data block to the first snapshot, comprising; creating a second table comprising a second plurality of entries corresponding to second portions of block addresses; writing one of the first plurality of entries corresponding to a first portion of the block address with a pointer leading to the second table; creating a third table comprising a third plurality of entries corresponding to third portions of block addresses; writing one of the second plurality of entries corresponding to a second portion of the block address with a pointer leading to the third table; writing the original value of the data block to a new data block; writing one of the third plurality of entries corresponding to a third portion of the block address with a pointer leading to the new data block; writing a new value in the data block in the base volume; at a second time after the first time, creating a second snapshot descending from the base volume, said creating a second snapshot comprising; creating another first table comprising the first plurality of entries corresponding to the first portions of block addresses; inserting the second snapshot between the base volume and the first snapshot, wherein the first snapshot now descends from the second snapshot. - View Dependent Claims (6, 7)
-
Specification