Cloning technique for efficiently creating a copy of a volume in a storage system
First Claim
1. A method for efficiently creating a copy of a parent virtual volume (vvol) in an aggregate of a storage system, the method comprising the steps of:
- providing a base snapshot of the parent vvol;
creating a new vvol embodied as a clone, the clone comprising a container file;
modifying a volume information (volinfo) block for the clone, the modified volinfo block comprising a modified version of a volinfo block from the base snapshot;
writing the modified volinfo block to the container file; and
instantiating the clone to service storage requests directed to the storage system.
2 Assignments
0 Petitions
Accused Products
Abstract
A cloning technique enables efficient and substantially instantaneous creation of a clone that is a writable copy of a “parent” virtual volume (vvol) in an aggregate of a storage system. A base snapshot is provided from the parent vvol. In addition, a new vvol is created, along with a new file system identifier, a new subdirectory in the aggregate and a new storage label file. The new vvol is embodied as a clone and comprises an appropriately sized container file, wherein initially the container file has no data. Moreover, a volume information (volinfo) block for the clone is created that is a slightly modified version of the volinfo block from the base snapshot; the modified volinfo block is written to the container file. The clone is then instantiated by loading a file system associated with the new vvol onto the clone and bringing the clone “online”.
239 Citations
20 Claims
-
1. A method for efficiently creating a copy of a parent virtual volume (vvol) in an aggregate of a storage system, the method comprising the steps of:
-
providing a base snapshot of the parent vvol;
creating a new vvol embodied as a clone, the clone comprising a container file;
modifying a volume information (volinfo) block for the clone, the modified volinfo block comprising a modified version of a volinfo block from the base snapshot;
writing the modified volinfo block to the container file; and
instantiating the clone to service storage requests directed to the storage system. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system adapted to efficiently creating a copy of a parent virtual volume (vvol) in an aggregate of a storage system, the system comprising:
-
disks coupled to the storage system and configured to store information served by the storage system;
a file system executing on the parent vvol of the storage system, the file system logically organizing the information as a structure of files and blocks on the disks;
a base snapshot sharing a parent container file represented as a parent buffer tree having a plurality of blocks in the aggregate, the plurality of blocks including level 0 data blocks that comprise all blocks used by the parent vvol, wherein one of the level 0 blocks is a snapshot volinfo block, the base snapshot sharing data structures with the file system executing on the parent vvol; and
a clone comprising a clone container file represented as a clone buffer tree having a plurality of blocks in the aggregate, the plurality of blocks including level 0 data blocks comprising all blocks used by the clone, wherein the clone container file initially contains only a modified volinfo block stored in one of the level 0 blocks, the modified volinfo block being a modified version of the snapshot volinfo block, wherein the modified volinfo block forms a root of a modified volinfo block buffer tree that is similar to a parent volinfo block buffer tree of the parent vvol such that all blocks of the parent volinfo block buffer tree are accessible when traversing the modified volinfo block buffer tree. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. Apparatus for efficiently creating a copy of a parent virtual volume (vvol) in an aggregate of a storage system, the apparatus comprising:
-
means for providing a base snapshot of the parent vvol;
means for creating a new vvol embodied as a clone, the clone comprising a container file;
means for modifying a volume information (volinfo) block for the clone, the modified volinfo block comprising a modified version of a volinfo block from the base snapshot;
means for writing the modified volinfo block to the container file; and
means for instantiating the clone to service storage requests directed to the storage system. - View Dependent Claims (16, 17)
-
-
18. A computer readable medium containing executable program instructions for efficiently creating a copy of a parent virtual volume (vvol) in an aggregate of a storage system, the executable instructions comprising one or more program instructions for:
-
providing a base snapshot of the parent vvol;
creating a new vvol embodied as a clone, the clone comprising a container file;
modifying a volume information (volinfo) block for the clone, the modified volinfo block comprising a modified version of a volinfo block from the base snapshot;
writing the modified volinfo block to the container file; and
instantiating the clone to service storage requests directed to the storage system. - View Dependent Claims (19, 20)
-
Specification