Data storage with snapshot-to-snapshot recovery
First Claim
Patent Images
1. A method for data storage comprising:
- creating a first copy of a logical volume;
creating a second copy of the logical volume based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored; and
responsively to a corruption of at least part of the data that is used by the first copy, restoring the first copy, from the second copy by replacing the first set with the pointers in the second set,wherein creating the copies comprises representing, the copies by a hierarchical tree structure comprising nodes, wherein each of the nodes comprises a respective set of local pointers, and wherein the copies are represented by respective nodes such that the local pointers in the nodes located along a path via the tree structure that connects a given node to a root node of the tree structure point to the physical storage locations in which the data used by the given copy is stored, and wherein the tree structure comprises first and second nodes respectively representing the first and second copies, wherein the second node is connected to the root node via a first path via the tree structure, and wherein restoring the first copy from the second copy comprises deleting the first node from the tree structure and creating a new node representing the restored first copy, such that the new node is connected to the root node via a second path whose nodes have the same local pointers as the nodes along the first path.
0 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide methods, apparatuses, systems, and computer software products for data storage. A first copy of a logical volume is created. A second copy of the logical volume is created based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored. Responsively to a corruption of at least part of the data that is used by the first copy. The first copy is restored from the second copy by replacing the first set with the pointers in the second set.
46 Citations
15 Claims
-
1. A method for data storage comprising:
-
creating a first copy of a logical volume; creating a second copy of the logical volume based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored; and responsively to a corruption of at least part of the data that is used by the first copy, restoring the first copy, from the second copy by replacing the first set with the pointers in the second set, wherein creating the copies comprises representing, the copies by a hierarchical tree structure comprising nodes, wherein each of the nodes comprises a respective set of local pointers, and wherein the copies are represented by respective nodes such that the local pointers in the nodes located along a path via the tree structure that connects a given node to a root node of the tree structure point to the physical storage locations in which the data used by the given copy is stored, and wherein the tree structure comprises first and second nodes respectively representing the first and second copies, wherein the second node is connected to the root node via a first path via the tree structure, and wherein restoring the first copy from the second copy comprises deleting the first node from the tree structure and creating a new node representing the restored first copy, such that the new node is connected to the root node via a second path whose nodes have the same local pointers as the nodes along the first path. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for data storage, comprising:
-
an interface configured to communicate with a host computer to receive data for storage that is addressed to a logical volume assigned on a storage device; and a processor coupled to the interface and adapted to; create a first copy of a logical volume; create a second copy of the logical volume based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored; and responsively to a corruption of at least part of the data that is used by the first copy, restore the first copy from the second copy by replacing the first set with the pointers in the second set, wherein the processor is further adapted to represent the copies by a hierarchical tree structure comprising nodes, wherein each of the nodes comprises a respective set of local pointers, and wherein the copies are represented by respective nodes such that the local pointers in the nodes located along a path via the tree structure that connects a given node to a root node of the tree structure point to the physical storage locations in which the data used by the given copy is stored, and wherein the tree structure comprises first and second nodes respectively representing the first and second copies, wherein the second node is connected to the root node via a first path via the tree structure, and wherein the processor is coupled to restore the first copy from the second copy by deleting the first node from the tree structure and creating a new node representing the restored first copy, such that the new node is connected to the root node via a second path whose nodes have the same local pointers as the nodes along the first path. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A data storage system, comprising:
-
a storage device; an interface coupled to the storage device and configured to communicate with a host computer to receive data for storage that is addressed to a logical volume assigned on the storage device; and a processor coupled to the interface and adapted to; create a first copy of a logical volume; create a second copy of the logical volume based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored; and responsively to a corruption of at least part of the data that is used by the first copy, restore the first copy from the second copy by replacing the first set with the pointers in the second set, wherein the processor is further adapted to represent the copies by a hierarchical tree structure comprising nodes, wherein each of the nodes comprises a respective set of local pointers, and wherein the copies are represented by respective nodes such that the local pointers in the nodes located along a path via the tree structure that connects a given node to a root node of the tree structure point to the physical storage locations in which the data used by the given copy is stored, and wherein the tree structure comprises first and second nodes respectively representing the first and second copies, wherein the second node is connected to the root node via a first path via the tree structure, and wherein the processor is coupled to restore the first copy from the second copy by deleting the first node from the tree structure and creating a new node representing the restored first copy, such that the new node is connected to the root node via a second path whose nodes have the same local pointers as the nodes along the first path. - View Dependent Claims (12, 13)
-
-
14. A computer software product for data storage, the product comprising a non-transitory computer-readable medium, in which program instructions are stored, the program instructions comprising:
-
a first executable portion for communicating with a host so as to receive data for storage that is addressed to a logical volume assigned on a storage device; a second executable portion for creating a first copy of a logical volume; a third executable portion for creating a second copy of the logical volume based on the first copy of the logical volume, such that the first and second copies are represented by respective first and second sets of pointers to physical storage locations in which data used by the copies is stored; a fourth executable portion for responsively to a corruption of at least part of the data that is used by the first copy, restoring the first copy from the second copy by replacing the first set with the pointers in the second set; and a fifth executable portion for representing the copies by a hierarchical tree structure comprising nodes, wherein each of the nodes comprises a respective set of local pointers, and wherein the copies are represented by respective nodes such that the local pointers in the nodes located along a path via the tree structure that connects a given node to a root node of the tree structure point to the physical storage locations in which the data used by the given copy is stored, wherein the tree structure comprises first anal second nodes respectively representing the first and second copies, wherein the second node is connected to the root node via a first path via the tree structure, and wherein the instructions cause the computer to restore the first copy from the second copy by deleting the first node from the tree structure and creating a new node representing the restored first copy, such that the new node is connected to the root node via a second path whose nodes have the same local pointers as the nodes along the first path. - View Dependent Claims (15)
-
Specification