Legal claims defining the scope of protection, as filed with the USPTO.
1. A method implemented at least in part by a computer, the method comprising: receiving a first request regarding a virtual environment; in response to the first request, sending a second request for a representation of first data of a store, the second request conveyed in conjunction with a description that identifies a portion of the store; in response to the second request, receiving a token that represents second data logically stored in the portion of the store, the second data a subset of the first data, wherein the token is invalidated when the second data changes; and providing the token together with information indicating to logically write third data via an offload provider, at least one of the first, second, and third data to be retrieved from or stored in a virtual storage container, wherein the information indicating to logically write the third data via an offload provider comprises: a destination-relative offset identifying a location to write the third data; a token-relative offset identifying a start of the third data; and a length identifying the end of the third data.
2. The method of claim 1 , wherein receiving a first request comprises receiving a request to logically write data of the virtual storage container to a physical storage and wherein providing the token together with information indicating to logically write third data via an offload provider comprises providing the token to the offload provider and indicating that the offload provider is to logically write the third data to the physical storage.
3. The method of claim 1 , wherein sending a second request for a representation of first data of a store comprises sending a second request for a representation of data of one or more of: a physical disk, a virtual disk, a logical unit, a logical disk, a logical disk based on a file, a file representing a logical disk, data representing logical disk differences, a volume, a file, a storage abstraction, and a random access memory.
4. The method of claim 1 , wherein receiving a first request comprises receiving a request to logically write data of a logical disk to the virtual storage container and wherein providing the token together with information indicating to logically write third data via an offload provider comprises providing the token to the offload provider and indicating that the offload provider is to logically write data of the logical disk to a file that represents the virtual storage container.
5. The method of claim 1 , wherein receiving a first request comprises receiving a request to merge differences of at least two virtual storage containers and wherein sending a second request for a representation of first data of a store comprises sending a request for a token for data representing one or more of the differences.
6. The method of claim 1 , wherein sending a second request for a representation of first data of a store comprises sending a request for a representation of data that is in a file accessible via a second computer, the file backed by a third computer that accesses the file from a storage pool external to the third computer.
7. The method of claim 1 , wherein receiving a first request comprises receiving a request to defragment the virtual storage container and wherein providing the token together with information indicating to logically write third data via an offload provider comprises sending a plurality of requests to logically write portions of the second data that are fragmented.
8. The method of claim 1 , wherein conditions related to invalidation of the token are stored in a token store.
9. A physical storage device having computer-executable instructions, which when executed by at least one processor perform a method comprising: receiving, from a virtualization component of a virtual environment, a first request for a representation of first data logically stored in a source store; generating a token that represents second data logically stored in the source store, the second data a subset of the first data, wherein the token is invalidated when the second data changes; associating the token with the second data via a data structure, the token usable to obtain the second data as the data existed when the token was bound to the second data; sending, to the virtualization component, the token; and receiving the token in conjunction with a second request to logically write third data, wherein the request is includes information comprising: a destination-relative offset identifying a location to write the third data; a token-relative offset identifying a start of the third data; and a length identifying the end of the third data.
10. The physical storage device of claim 9 , wherein receiving a first request for a representation of first data logically stored in a source store comprises receiving a request for representation of data of a file, the file representing a virtual storage container.
11. The physical storage device of claim 10 , wherein receiving the token in conjunction with a second request to logically write third data comprises receiving a request to logically write data from the virtual storage container to a logical disk.
12. The physical storage device of claim 9 , wherein receiving a first request for a representation of first data logically stored in a source store comprises receiving a request for a representation of data logically stored in a logical disk.
13. The physical storage device of claim 12 , wherein receiving the token in conjunction with a second request to logically write third data comprises receiving a request to logically write data from the logical disk to a virtual storage container and further comprising preparing a file representing the virtual storage container by writing a block allocation table to the file.
14. The physical storage device of claim 9 , further comprising binding the token to the second data after receiving the first request and before sending the token.
15. The physical storage device of claim 9 , wherein receiving the first request comprises receiving the first request via a first path that includes a first machine and wherein receiving the second request comprises receiving the second request via a second path that does not include the first machine.
16. In a computing environment, a system, comprising: a virtualization layer operable to create a virtual environment having one or more virtual storage devices; a virtual storage manager operable to receive a request to logically write data to or from one or more of the virtual storage devices, the virtual storage manager further operable to send a request for a representation of first data in a store, the virtual storage manager further operable to receive a token that represents second data as the second data logically existed when the token was bound to the second data, wherein the token is invalidated when the second data changes, the virtual storage manager further operable to provide the token together with information indicating to logically write third data, wherein the information indicating to logically write the third comprises: a destination-relative offset identifying a location to write the third data; a token-relative offset identifying a start of the third data; and a length identifying the end of the third data; and an offload provider operable to receive the token together with the information, the offload provider further operable to logically write the third data using the token that represents the second data.
17. The system of claim 16 , wherein the virtual storage manager being operable to receive a request to logically write data to or from one or more of the virtual storage devices comprises the virtual storage manager being operable to receive a request to logically write data of one of the virtual storage devices to a logical disk and wherein the offload provider being operable to logically write the third data comprises the offload provider being operable to logically write the third data to the logical disk.
18. The system of claim 16 , wherein the virtual storage manager is further operable to update a virtual storage device for the third data by writing offset translation data structures of the virtual storage device.
19. The system of claim 16 , wherein the virtual storage manager being operable to receive a request to logically write data to or from one or more of the virtual storage devices comprises the virtual storage manager being operable to receive a request to logically write data of a logical disk to one of the virtual storage devices and wherein the offload provider being operable to logically write the third data comprises the offload provider being operable to logically write the data of the logical disk to the one of the virtual storage devices.
20. The system of claim 16 , wherein the virtual storage manager is further operable to receive a request to defragment one of the virtual storage devices, the virtual storage manager being further operable to logically defragment the one of the virtual storage devices by performing actions, comprising: obtaining a token that represents data that includes a fragment of the one of the virtual storage devices; and sending the token together with a request to write the fragment to a location that concatenates the fragment with other fragmented data logically adjacent to the fragment.
Unknown
July 28, 2015
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.