Active file Instant Cloning
View Patent ↗Techniques and mechanisms are provided to instantly clone active files including active optimized files. When a new instance of an active file is created, a new stub is generated in the user namespace and a block map file is cloned. The block map file includes the same offsets and location pointers that existed in the original block map file. No user file data needs to be copied. If the cloned file is later modified, the behavior can be same as what happens when a de-duplicated file is modified.
1. A method comprising:
receiving a request to clone an active and optimized file, the active and optimized file associated with a block map file, the block map file referencing a plurality of objects including a plurality of data segments included in the active and optimized file, wherein the active and optimized file is a virtual image associated with a virtual machine; and
cloning the block map file to create a cloned block map file, the cloned block map file referencing the same plurality of objects including the plurality of data segments included in the active and optimized file, wherein a stub file associated with the active and optimized file is cloned to a create a cloned stub file, and wherein the cloned stub file appears in a user viewable namespace as a file separate from the stub file.
2. The method of claim 1 , wherein the active and optimized file has been deduplicated.
3. The method of claim 1 , wherein the active and optimized file has been compressed.
4. The method of claim 1 , wherein the stub file is associated with extended attribute information in the user viewable namespace.
5. The method of claim 4 , wherein the block map file is associated with the same extended attributed information in a user inaccessible locker.
6. The method of claim 1 , wherein the cloned stub file is associated with extended attribute information in the user viewable namespace.
7. The method of claim 6 , wherein the cloned block map file is associated with the same extended attribute information in a user inaccessible locker.
8. The method of claim 1 , wherein the block map file includes offset, length, and location information pointing to data segments in a datastore suitcase.
9. The method of claim 8 , wherein the cloned block map file includes the same offset, length, and location information pointing to the same data segments in the datastore suitcase.
10. A system comprising:
an interface configured to receive a request to clone an active and optimized file, the active and optimized file corresponding to a block map file, the block map file referencing a plurality of objects including a plurality of data segments found in the active and optimized file, wherein the active and optimized file is a virtual image associated with a virtual machine running on a system; and
a processor configured to clone the block map file to create a cloned block map file, the cloned block map filed referencing the same plurality of objects including the plurality of data segments found in the active and optimized file, wherein a stub file associated with the active and optimized file is cloned to a create a cloned stub file, and wherein the cloned stub file appears in a user viewable namespace as a file separate from the stub file.
11. The system of claim 10 , wherein the active and optimized file has been deduplicated.
12. The system of claim 10 , wherein the active and optimized file has been compressed.
13. The system of claim 10 , wherein the stub file is associated with extended attribute information in the user viewable namespace.
14. The system of claim 13 , wherein the block map file is associated with the same extended attributed information in a user inaccessible locker.
15. The system of claim 10 , wherein the cloned stub file is associated with extended attribute information in the user viewable namespace.
16. The system of claim 15 , wherein the cloned block map file is associated with the same extended attribute information in a user inaccessible locker.
17. The system of claim 10 , wherein the block map file includes offset, length, and location information pointing to data segments in a datastore suitcase.
18. A non-transitory computer readable medium comprising:
computer code for receiving a request to clone an active and optimized file, the active and optimized file associated with a block map file, the block map file referencing a plurality of objects including a plurality of data segments included in the active and optimized file, wherein the active and optimized file is a virtual image associated with a virtual machine; and
computer code for cloning the block map file to create a cloned block map file, the cloned block map file referencing the same plurality of objects including the plurality of data segments included in the active and optimized file, wherein a stub file associated with the active and optimized file is cloned to a create a cloned stub file, and wherein the cloned stub file appears in a user viewable namespace as a file separate from the stub file.