CPC G06F 3/0641 (2013.01) [G06F 3/0608 (2013.01); G06F 3/0614 (2013.01); G06F 3/067 (2013.01); G06F 16/137 (2019.01)] | 20 Claims |
1. A method comprising:
dividing a file into a plurality of data segments at a virtual machine configured to facilitate communication between a client machine and one or more cloud storage back-ends, the client machine using one or more processors to run standard storage protocols configured for use in a network-attached storage system, the one or more cloud storage back-ends not supporting the standard storage protocols but having a cloud storage application program interface (API), the virtual machine configured to facilitate communication between the client machine and one or more cloud storage back-ends, the virtual machine appearing to the client machine as a network-attached storage system and transparently connecting the client machine to the one or more cloud storage back-ends;
inserting a plurality of local segment entries into a local segment map on a local device, the local segment map including information on the file and the plurality of data segments;
inserting a plurality of global segment entries into a global segment reference map in a cloud storage location when it is determined that the data segments have not been previously added to the global segment reference map, wherein the global segment reference map in the cloud storage location is separate from the local segment map on the local device; and
deleting from the cloud storage location each of the plurality of data segments that are not added to the global segment reference map, wherein deleting from the cloud storage location each of the plurality of data segments is associated with a process of deduplicating the plurality of data segments.
|