Provisioning and snapshotting using copy on read/write and transient virtual machine technology
First Claim
1. A computer accessible storage medium comprising instructions which, when executed:
- establish a virtual machine on a computer system;
trap reads by the virtual machine to an image of a set of software resources to be provisioned on the computer system; and
for each read;
(a) check a first storage from which the computer system is configured to boot for a block identified in the read, wherein the block is included within the image of the set of software resources;
(b) if the block is stored in the first storage, supply the block from the first storage in response to the read; and
(c) if the block is not stored in the first storage;
fetch at least the block from an image repository system that stores the image;
store the block in the first storage; and
supply the block in response to the read; and
wherein the instructions, when executed;
detect an initialization of a device driver for the first storage within the virtual machine, the device driver coded to perform (a), (b), and (c) in response to read requests to the first storage; and
exit the virtual machine in response to detecting the initialization.
9 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a computer accessible medium comprises instructions which, when executed, check a first storage from which a computer system is configured to boot for a block identified in a read request. The block is included within an image of a set of software resources to be provisioned on the computer system. If the block is stored in the first storage, the instructions supply the block from the first storage in response to the read request. Otherwise, the instructions: fetch the block from an image repository system that stores the image; store the block in the first storage; and supply the block in response to the read request. In another embodiment, the instructions store a block identified in a write request to the first storage. The instructions record that the block is modified in the first storage with respect to the image stored in an image repository system.
145 Citations
29 Claims
-
1. A computer accessible storage medium comprising instructions which, when executed:
-
establish a virtual machine on a computer system; trap reads by the virtual machine to an image of a set of software resources to be provisioned on the computer system; and for each read; (a) check a first storage from which the computer system is configured to boot for a block identified in the read, wherein the block is included within the image of the set of software resources; (b) if the block is stored in the first storage, supply the block from the first storage in response to the read; and (c) if the block is not stored in the first storage; fetch at least the block from an image repository system that stores the image; store the block in the first storage; and supply the block in response to the read; and wherein the instructions, when executed; detect an initialization of a device driver for the first storage within the virtual machine, the device driver coded to perform (a), (b), and (c) in response to read requests to the first storage; and exit the virtual machine in response to detecting the initialization. - View Dependent Claims (2, 3)
-
-
4. A computer accessible storage medium comprising instructions which, when executed:
-
(a) check a first storage from which a computer system is configured to boot for a block identified in a read request generated on the computer system, wherein the first storage is non-volatile, and wherein the block is included within an image of a set of software resources to be provisioned on the computer system; (b) if the block is stored in the first storage supply the block from the first storage in response to the read request; and (c) if the block is not stored in the first storage; fetch at least the block from an image repository system that stores the image; store the block in the first storage; and supply the block in response to the read request; and wherein the instructions, when executed, maintain a map identifying which blocks of the image are stored in the first storage, and wherein checking the first storage for the block comprises checking the map, and wherein the instructions comprise a device driver, and wherein the computer accessible storage medium further comprises a program comprising second instructions which when executed; receive one or more additional blocks from the image repository system, wherein the one or more additional blocks are received independent of read requests generated in the computer system and received by the device driver; store the one or more additional blocks in the first storage; and update the map to indicate that the one or more additional blocks are stored in the first storage. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. The computer accessible storage medium comprising instructions which, when executed:
-
(a) check a first storage from which a computer system is configured to boot for a block identified in a read request generated on the computer system, wherein the block is included within an image of a set of software resources to be provisioned on the computer system; (b) if the block is stored in the first storage, supply the block from the first storage in response to the read request; (c) if the block is not stored in the first storage; fetch at least the block from an image repository system that stores the image; store the block in the first storage; and supply the block in response to the read request; maintain a map identifying which blocks of the image are stored in the first storage, and wherein checking the first storage for the block comprises checking the map; update the map to indicate that the block is stored in the first storage in response to fetching the block from the image repository system and storing the block in the first storage; in response to a write request, store a second block supplied in the write request in the first storage and update the map to indicate that the second block is stored in the first storage and is modified with respect to the image in the image repository system; receive a request from the image repository system for modified blocks within the image; identify modified blocks within the map; and transmit the modified blocks to the image repository system. - View Dependent Claims (11, 12)
-
-
13. The computer accessible storage medium comprising instructions which, when executed:
-
store a block identified in a write request generated within a computer system to a first storage from which the computer system is configured to boot, the block included in an image of a set of software resources that are provisioned on the computer system, wherein the first storage is non-volatile; record that the block is modified with respect to the image stored in an image repository system; transmit the block to the image repository system; receive an acknowledgement from the image repository system corresponding to the block; and record that the block is not updated with respect to the image stored in the image repository system responsive to the acknowledgement. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method for provisioning a computer system with a set of software resources, the method comprising:
-
initiating execution of the set of software resources on the computer system prior to storing at least some blocks comprising the set of software resources to a first storage from which the computer system is configured to boot, wherein the first storage is non-volatile; the computer system generating a read request for a first block of the blocks comprising the set of software resources; if the first block is stored in the first storage, supplying the first block from the first storage; and if the first block is not stored in the first storage; fetching the first block from an image repository system that stores an image of the set of software resources; storing the first block in the first storage; and supplying the first block in response to the read request; establishing a virtual machine on the computer system, the virtual machine initiating the execution of the set of software resources the virtual machine generating the read request; trapping the read request by the virtual machine to the first storage; detecting that a device driver for the first storage within the set of software resources has been initialized; and terminating the virtual machine responsive to the detecting. - View Dependent Claims (19, 20)
-
-
21. An apparatus comprising:
-
an image repository system configured to store an image of a set of software resources; and a computer system, wherein the computer system is configured to transmit a remote boot request in response to booting; wherein the image repository system is coupled to receive the remote boot request, and wherein the image repository system is configured to detect that the computer system is to be provisioned with the set of software resources, and wherein the image repository system is configured to respond to the remote boot request with a program which, when executed by the computer system, initiates execution of the set of software resources prior to at least some blocks in the image being copied to the computer system, and wherein the computer system includes a first storage that is to store the image, and wherein the set of software resources includes a device driver for the first storage which, when executed in response to a read request generated responsive to executing the set of software resources, is configured to check the first storage for a first block identified by the read request, and wherein the device driver is configured to supply the first block from the first storage if the first block is stored in the first storage. - View Dependent Claims (22, 23, 24, 25)
-
-
26. An apparatus comprising:
-
an image repository computer system configured to store an image of a set of software resources; and a computer system coupled to communicate with the image repository computer system, wherein the computer system is configured to execute the set of software resources, and wherein the computer system is configured to track which blocks in a first storage from which the computer system is configured to boot and which correspond to the image are updated with respect to the image stored on the image repository computer system, the updates generated by the computer system during execution of the set of software resources; and wherein a snapshot of the image as updated by the computer system is generated by transmitting the modified blocks from the computer system to the image repository computer system and not transmitting unmodified blocks. - View Dependent Claims (27, 28, 29)
-
Specification