systems and methods for managing imaging of multiple computing devices are provided. A device image manager determines a number of device images which may be loaded by the computing devices. The device image manager transmits a set of device images to the computing devices, which then store the device images. When provisioning of one or more of the computing devices is desired, the device image manager selects a device image or receives selection of a device image. The device image manager then sends a provisioning command device to the appropriate computing devices identifying the selected device image. If the computing devices have stored the selected device image, the computing devices may load the selected device image without requiring retransmission of the device image.
|
20. A system for provisioning a set of computing devices, comprising:
a computing system comprising a processor coupled to memory, the memory containing computer-executable instructions for executable by the computing system to implement a device image manager, wherein execution of the computer-executable instructions causes the computing system to:
determine a set of computing devices;
determine a set of device images including a first device image that, when processed by a computing device of the set of computing devices, enables the computing device to carry out a first desired functionality and a second device image that, when processed by the computing device of the set of computing devices, enables the computing device to carry out a second desired functionality;
independent of implementation, at the set of computing devices, of instructions to provision the set of computing devices with a device image of the set of device images, cause the set of computing devices to store the set of device images locally to individual computing devices of the set of computing devices; and
transmit instructions to the set of computing devices to process, at individual computing devices of the set of computing devices, the first device image of the previously stored set of device images, wherein the instructions specify the first device image, and wherein the processing enables each computing device of the set of computing device to carry out the first desired functionality.
12. A method for provisioning a set of computing devices, comprising:
determining, at an image management device, a set of device images including a first device image corresponding to a first set of instructions executable by a computing device to enable the computing device to carry out a first desired functionality and a second device image that corresponds to a second set of instructions executable by the computing device to enable the computing device to carry out a second desired functionality;
transmitting, from data storage associated with the image management device, the set of device images to a determined set of computing devices independent of implementation, at the set of computing devices, of instructions to provision the set of computing devices with a device image of the set of device images, wherein transmission of the set of device images causes the set of computing devices to store the set of device images locally to individual computing devices within the set of computing devices;
detecting at the image management device, a provision event, the provision event corresponding to a detection that at least one computing device of the set of computing devices should be enabled to implement the first desired functionality; and
transmitting, by the image management device, instructions to the at least one computing device to process, at the at least one computing device, the first device image of the previously stored set of device images, wherein the instructions specify the first device image, and wherein the processing enables the at least one computing device to carry out the first desired functionality.
1. A system for management of provisioning of devices, comprising:
a computing system comprising a processor coupled to memory, the memory containing computer-executable instructions for execution by the computing system to implement a device image manager, wherein execution of the computer-executable instructions causes the computing system to:
transmit a set of device images to multiple computing devices, wherein the set of device images includes a first device image which, when processed by a computing device, enables the computing device to carry out a first desired functionality and a second device image which, when processed by the computing device, enables the computing device to carry out a second desired functionality different from the first desired functionality, wherein transmission of the set of device images causes the multiple computing devices to store the set of device images locally to individual computing devices of the multiple computing devices, and wherein transmission of the set of device images to the multiple computing devices occurs independently from implementation, at the multiple computing devices, of instructions to provision the multiple computing devices with a device image of the set of device images;
subsequent to transmitting the set of device images, receive a request to provision the multiple computing devices according to the first desired functionality corresponding to the first device image; and
in response to the received request, transmit instructions to the multiple computing devices to process, at individual computing devices of the multiple computing device, the first device image of the set of device images, as previously received independently from implementation of instructions to provision the multiple computing devices with a device image of the set of device images and as stored locally to individual computing devices of the multiple computing devices, wherein the instructions specify the first device image, and wherein the processing enables each of the multiple computing devices to carry out the first desired functionality.
2. The system of
3. The system of
4. The system of
5. The system of
6. The system of
7. The system of
8. The system of
9. The system of
receive an updated device image, the updated device image corresponding to an image of the set of device images; and
transmit the updated device image to the multiple computing devices, wherein transmission of the updated device image causes the multiple computing devices to store the updated device image.
10. The system of
11. The system of
13. The method of
14. The method of
15. The method of
16. The method of
receiving an updated device image, the updated device image corresponding to an image of the set of device images; and
transmitting the updated device image to the set of computing devices, wherein transmission of the updated device image causes set of computing devices to store the updated device image.
17. The method of
18. The method of
19. The method of
determining a second set of device images, the second set of device images distinct from the previously determined set of device images;
transmitting the second set of device images to the determined set of computing devices;
detecting a second provision event; and
in response to the detected second provision event, causing at least one computing device of the set of computing device to process at least one device image of the second set of device images.
21. The system of
22. The system of
23. The system of
24. The system of
receive an updated device image, the updated device image corresponding to an image of the set of device images; and
transmit the updated device image to the set of computing devices, wherein transmission of the updated device image causes the multiple computing devices to store the updated device image.
25. The system of
26. The system of
27. The system of
|
Generally described, computing devices utilize a communication network, or a series of communication networks, to exchange data. Companies and organizations operate computer networks that interconnect a number of computing devices to support operations or provide services to third parties. The computing systems can be located in a single geographic location or located in multiple, distinct geographic locations (e.g., interconnected via private or public communication networks). Specifically, data centers or data processing centers, herein generally referred to as a “data center,” may include a number of interconnected computing systems to provide computing resources to users of the data center. The data centers may be private data centers operated on behalf of an organization or public data centers operated on behalf, or for the benefit of the general public.
To facilitate increased utilization of data center resources, individual computing devices within a data center may be configured to provide specific functionality according to the requirements of the data center. For example, various computing devices may be associated with different operating systems or operating system configurations to enable a computing device to provide different desired functionalities, or to provide similar functionalities more efficiently. These operating systems or operating system configurations are often contained within a device image, which a computing device may process in order implement the desired software configuration. This implementation of a desired software configuration is generally referred to as provisioning.
The foregoing aspects and many of the attendant advantages of this disclosure will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Generally described, aspects of the present disclosure relate to the management of device imaging processes occurring on multiple computing devices. Specifically, systems and methods are disclosed which facilitate imaging of multiple computing devices. In one aspect, device images are transmitted to a number of computing devices by a device image manager. Illustratively, each device image can correspond to a software configuration of a computing device, such as an operating system or operating system kernel. The computing devices then store the devices images such that they may be accessed at a later time. Illustratively, the computing devices may store the device images on a local hard disk drive of each of the computing devices. The device image manager may then detect that some or all of the computing devices should load at least one of the images. Once a determination is made that some or all of the computing devices under the control of the device image manager should load an image, the device image manager may send a command to the relevant computing devices to load a specified device image. The computing device may then determine whether the specified device image exists within locally accessible storage. If so, the computing device may process the device image without requiring transmission of the specified image from the device image manager in response to the command from the device image manager. In this way, network resources required to load one or more device images onto multiple computing devices may be reduced.
In some embodiments, the device image manager may further be capable of selecting one or more device images to be placed on a computing device. This determination may be made, at least in part, according to the characteristics of the computing device, such as the computing device's hardware, network configuration, performance, or location. Additionally, the determination may be made, at least in part, according to the intended function or functions of the computing device. In still more embodiments, the device image manager may be further capable of updating device images stored by computing devices.
Specific embodiments and example applications of the present disclosure will now be described with reference to the drawings. These embodiments and example applications are intended to illustrate, and not limit, the present disclosure.
The illustrated environment further includes a device image manager 102 in communication with the computing devices 106 via a network 104. The network 104 may be, for instance, a wide area network (WAN), a local area network (LAN), or a global communications network.
Illustratively, the device image manager may manage provisioning of computing devices 106 by transmitting device images to the computing devices 106 or the collection of computing devices 110. As used herein, provisioning of a computing device refers to the processes of accessing and loading a device image onto the computing device. In some embodiments, such provisioning may alter the software of a computing device such that the device may carry out additional or different functionality, generally referred to as reprovisioning. The computing devices 106 or collection of computing devices 110 may store the transmitted set of device images in storage 108. In this manner, the device images may later be accessed by the computing devices 106 or collection of computing devices 110 independent of the device image manager 102. The device image manager may further manage provisioning by detecting provision events and sending a provision command to the computing devices 106 or collection of computing devices 110. The provision events may correspond to an automated detection that one or more computing devices 106 or collection of computing devices 110 should be provisioned, or to a received input specifying devices to be provisioned. The device image manager may then cause the computing devices 106 or collection of computing devices 110 to load a specified device image by transmitting a provision command. An example of the interaction between components in a provisioning process will be described in more detail with respect to
In some embodiments, the device image manager 102 may be operable to determine which device images to transmit or cause to be transmitted based on identified configuration information of the computing devices 106 or the collection of computing devices 110. The configuration information may correspond to hardware profile information, network profile information, benchmarking information, or computing device location information. Illustratively, configuration information may correspond to hardware components of the computing device 106, such as information corresponding to a central processing unit of the computing device 106. Configuration information may further correspond to an IP address of the computing device 106. Additional examples of configuration information will be discussed with respect to
In some embodiments, the device image manager 102 may be operable to update device images stored by computing devices 106 or collection of computing devices 110. The device image manager 102 may determine that an update exists for one or more of the device images which have been transmitted to computing devices 106 or collection of computing devices 110. The device image manager may determine which devices are currently storing the non-updated device image and transmit a device image update to the relevant devices. One example illustration of such an update process will be discussed with respect to
With reference to
With continued reference to
After detection of a provision event, the device image manager 102 may transmit a provision command to computing devices 106A-C. This provision command may specify the type of provisioning which is to occur, the specific device image which is to be loaded, or other information sufficient to allow the computing device 106 to load a device image corresponding to the provision command. As will be appreciated by one skilled in the art, transmission of provision commands to computing devices 106A-C may occur simultaneously or in any order. In some embodiments, provision commands may be transferred only to a single computing device 106, such as computing device 106A, or group of computing devices 106, such as computing devices 106B. As will be appreciated by one skilled in the art, the provision command may be transmitted through a variety of processes.
By way of non-limiting example, a provision command may correspond to a command sent from the device image manger 102 via and application programming interface (API). A provision command may further correspond with boot instructions to a computing device 106. Such boot instructions may direct the computing device 106 to take specified actions after a reboot of the computing device. For example, a computing device 106 may be configured to receive boot instructions from a device image manager 102 on each boot of the computing device 106. On detection of a provision event, the boot image manager 102 may modify the boot instructions such that the computing device 106 loads a specified device image when it next boots.
In response to receiving a provision command, the computing devices 106 then process the corresponding device image. If the corresponding device image was previously transmitted to the computing device 106 and stored in device image storage, the computing device 106 may process the device image without requiring retransmission of the device image from the device image manager 102 or another location. If the device image was not previously stored by the computing device 106, transmission of the device image may be required from another source.
In some embodiments, processing the device image may correspond to copying all or part of a specified device image to an image destination storage of the computing device 106. The image destination storage corresponds to a storage of the computing device 106 on which the device image is to be loaded. In some embodiments, this image destination storage may be distinct from the device image storage 108, which stores the received device images. Image destination storage may correspond to random access memory (RAM) of the computing device 106, to a hard disk drive of the computing device 106, or to other storage accessible by the computing device 106. After copying all or part of the specified device image to the image destination storage, the computing device 106 may run the software now located on the image destination storage. This software corresponds with the software contained within the specified device image. In some embodiments; the device image may contain an operating system, operating system kernel, or operating system configuration. As will be appreciated by one skilled in the art, device images may contain a variety of software or software configurations.
In still more embodiments, processing of a specified device image may require loading of more than one device image by a computing device 106. By way of illustrative example, a computing device 106 may utilize a temporary device image containing a temporary operating system. The computing device may load this temporary operating system into RAM, and reboot to operate via the temporary operating system. The temporary operating system may then load a final device image into a non-temporary storage of the computing device 106. The temporary operating system may then cause the computing device 106 to reboot and load the software contained within the final device image from the non-temporary storage.
In some embodiments, loading of multiple device images may be required gain unrestricted write access to an image destination storage location. Such access may be restricted, for example, by a current operating system which is operating from the image destination storage. By loading an intermediate device image, such as one containing a temporary operating system, unrestricted access to the image destination storage may be gained. The computing device 106 may then load the desired device image containing the new operating system onto the image destination storage.
As will be appreciate by one skilled in the art, the provision command may correspond to a single command, or to series of commands which cause the processing of a device image or images. For example, where intermediary device images must be processed in order to load a final desired device image, the initial provision command may specify each device image that must be loaded, only a portion of the device images which must be loaded, or only the first device image to be loaded. The device image manager 102 may subsequently communicate with the software loaded by intermediary device images to specify additional intermediary device images or the final desired device image. One of ordinary skill in the art will appreciate that a variety of provision commands and image loading techniques may be utilized without departing from the scope of the present disclosure.
With reference now to
With continued reference to
After detection of a provision event, the device image manager 102 may transmit a provision command to control devices 112 within the collections of computing devices 110. This provision command may specify parameters of the provisioning, such as which computing devices 106 should be provisioned, what image should be loaded into each computing device 106, or other information sufficient to allow the control device 112 to provision the computing devices 106. As will be appreciated by one skilled in the art, transmission of provision commands to collections of computing devices 110 may occur simultaneously or in any order.
In response to receiving a provision command, in one embodiment, the control devices 112 may then cause the loading of corresponding device image onto appropriate computing devices 106. If the corresponding device image was previously transmitted to the collection of computing devices 110 and stored in device image storage 108, the collection of computing devices 110 may process the device image without requiring retransmission of the device image from the device image manager 102 or another location. If the device image was not previously stored by the collection of computing devices 110, such as in storage 108, transmission of the device image may be required from an alternative source outside the collection of computing devices 110.
In other embodiments, the control device 112 may forward an appropriate provision command to each individual computing device 106. The control device 112 may determine the appropriate provision command based on the provision command received from the device image manager 102. For example, the device image manger 102 may transmit a provision command to control device 112A specifying that computing device 106A is to be provisioned with a first device image. The provision command may further specify that computing device 106B is to be provisioned with second device image. In this illustrative example, control device 112A may determine two separate commands for the computing devices 106A and 106B, each command specifying the appropriate device image to be loaded by the individual computing device 106. One illustration of an individual computing device 106 provisioning itself based on a provision command is discussed with respect to
In other embodiments, the control device 112 may directly control provisioning of one or more computing devices 106. In these embodiments, the control device 112 may copy all or part of the device image to an image destination storage of the computing device 106. The image destination storage may correspond to random access memory (RAM) of the computing device 106, to a hard disk drive of the computing device 106, or to other storage accessible by the computing device 106 in order to load the software included within the device image. For example, the control device 112 may directly load a device image onto an image destination storage accessible by the computing device 106. This direct loading may not require any processing by the computing device 106. In some embodiments, the computing device 106 may not be aware that the control device 112 is loading a device image onto an image destination storage. The control device 112 may further reboot the computing device 106 in order to cause the device to load the device image as copied to the image destination storage. In some embodiments, causing the computing device 106 to load the device image may correspond to a modification of a boot instruction of the computing device 106. In some embodiments, utilizing a control device 112 in order to provision a computing device 106 may eliminate or reduce the need to use temporary device images in order to load a desired device image.
With reference now to
Specifically, and for purposes of example, device configuration information may include hardware profile information associated with a hardware component of a computing device including, but not limited to, a network interface controller (NIC), a central processing unit (CPU), a computing device basic input/output system (BIOS), computing device firmware, a motherboard, a daughterboard, an expansion board, a bus, a computer readable media drive, a memory, a storage device, a computer display, an input or output interface, or a computing device enclosure. Device configuration information may further include network profile information or location information corresponding to or associated with a or logical location in a network or data center, including, but not limited to, information associated or determined from with a MAC address, a static IP address, a logical device group identifier, a control device identifier, a serial number or ID corresponding to one or more components of the computing device 106, a data storage location, information identifying one or more specific instances of a device image manager 102, or other information that may indicate or be used to infer a logical or location. Device configuration information may still further include benchmark profile information associated with one or more performance benchmarks of a computing device 106 or computing device component, including but not limited to, processor performance; energy usage; bus speed; drive or data storage component throughput or seek time; network bandwidth, throughput, or latency to one or more remote or local network locations; or other benchmark data associated with the computing device.
Illustrative, the computing devices transfer device configuration information to the device image manager 102. Transferring device configuration information may include transmitting data comprising the device configuration information across a direct connection or network 104 of
For example, the device image manager 102 may compare the device configuration information corresponding to the computing device 106A to a set of hardware qualifications associated with a group of fifty device images to identify a set of ten different device images that may be loaded on computing device 106A. In an alternate embodiment, the device image manager 102 may identify all device images as potentially able to be loaded on the computing device 106A, or may skip the step entirely. To continue this example, the device image manager 102 may further compare the device configuration information to the set of hardware qualifications to narrow this initial set of device images down to a set of device images appropriate for computing device 106A. For example, if device configuration information such as a network profile associated with computing device 106A indicates that the computing device 106A is located in a network subnet that is dedicated to servicing client DNS queries, a comparison of the device configuration information with the set of hardware qualifications may cause the device image manager 102 to identify three device images out of the initial set of ten that correspond to operating systems, software, or operating system configurations for responding to DNS queries.
As another example, if device configuration information such as a location profile associated with the computing device 106A indicates that the computing device 106A is located in a data center in an area with high energy costs, a comparison of the device configuration information with the hardware qualification information may cause the device image manager 102 to identify two device images out of the initial set of ten that correspond to operating systems, software, or operating system configurations configured for low power usage. As still another example, if device configuration information such as a benchmark profile associated with the computing device 106A indicates that the computing device 106A is associated with a high network latency to a particular group of network clients, a comparison of the device configuration information with the hardware qualification information may cause the device image manager 102 to identify one device image out of the initial set of ten that corresponds to an operating systems, software, or operating system configuration configured for long term backup or storage of content, rather than rapid service of content to the group of network clients. As still another example, a comparison of the device configuration information with hardware qualifications may cause the device image manager 102 to identify all ten of the initial set of device images as potential images for the computing device 106A.
As yet another example, each device image may be associated with one or more specific categories. Illustratively, these categories may correspond to functionalities of a computing device 106, such as a database server or web services host server. Device images may be manually associated with specific categories. In some embodiments, device images may be automatically associated with a category based on software contained within the device image or hardware requirements associated with the device image. The device image manager 102 may utilize these categories in order to determine a set of device images which may be loaded onto a computing device 106. Illustratively, the device image manager 102 may use configuration information of the computing device 106A to determine that the computing device 106A is suitable for loading device images within a database server category. This determination may be based on configuration information indicating computing device 106A has a large amount of storage space. The device image manager 102 may further determine that the computing device 106A is also suitable for loading device images contained within a web services host category. This determination may be based on configuration information indicating that computing device 106A has a large amount of network resources. The device image manager 102 may then determine that the set of device images to be transmitted to computing device 106A is the set of device images contained within the categories “database server” and “web services host.”
Still further, a set of device images may be determined based in part on past, present, or estimated future demand for specific functionality. For example, where demand for a specific functionality has historically increased, the device image manager 102 may sent to a computing device 106A a device image which allows the device to implement that specific functionality. As a further example, where estimations of future user demand indicate that demand is falling for a specific functionality, the device image manager 102 may be less likely to send to a computing device 106A a device image which allows the device to implement that specific functionality. In some embodiments, the device image manager 102 may further gather information as to the number of computing devices 106 which are currently storing a device image implementing a specific functionality. For example, where future demand is expected to decrease for that specific functionality, and the number of computing devices 106 storing the device image is high, the device image manager 106 would be less likely to transmit the device image to an addition computing device 106. Conversely, where demand is expected to rise for a functionality, and the number of computing devices 106 storing a device image or images implementing that functionality is low, a device image manager may be more likely to transmit that device image or images.
Although the selection of a first set of device images that may be loaded on the computing device 106A and the selection of a second subset of device images is described here for the purpose of example as two logical steps, it should be understood that the process of identify one or more appropriate device images may be implemented or executed in one, two, or any other number of logical steps by the device image manager 102.
After the device image manager 102 has selected a set of device images for the computing devices 106, the device image manager 102 may cause the selected device image to be transferred to the computing devices 106.
With reference now to
After the control devices 112 have determined their associated device configuration information, the device configuration information is transferred to the device image manager 102. Transferring device configuration information may include transmitting data comprising the device configuration information across a direct connection or network 104 of
After the device image manager 102 has access to device configuration information corresponding to the collections of computing devices 110, the device image manager may utilize the device configuration information to select a set of device images based on hardware qualifications associated with the device images. In one embodiment, the device image manager 102 may compare device configuration information corresponding to a computing device 106 to a set of hardware qualifications associated with a number of device images in order to identify a set of device images capable of be loaded on the computing device 106 of the collection of computing devices 110. In a further embodiment, device image manager 102 may determine a set of device images by comparing network profiles, location profiles, benchmark profiles, or additional non-essential hardware profiles included in the device configuration information to the set of hardware qualifications.
For example, the device image manager 102 may compare device configuration information corresponding to a collection of computing devices 110 to a set of hardware qualifications associated with a group of fifty device images to identify a set of ten different device images that may be loaded on the collection of computing devices 110. In an alternate embodiment, the device image manager 102 may identify all device images as potentially able to be loaded on a collection of computing devices 110, or may skip the step entirely. To continue this example, the device image manager 102 may further compare the device configuration information to the set of hardware qualifications to narrow this initial set of device images down to a set of device images appropriate for a collection of computing devices 110. For example, if device configuration information such as a network profile associated with a collection of computing devices 110 indicates that the collection of computing devices 110 is located in a network subnet that is dedicated to servicing client DNS queries, a comparison of the device configuration information with the set of hardware qualifications may cause the device image manager 102 to identify three device images out of the initial set of ten that correspond to operating systems, software, or operating system configurations for responding to DNS queries.
Similar to as described above with respect to
As another example, if device configuration information such as a location profile associated with a collection of computing devices 110 indicates that the collection of computing devices 110 is located in a data center in an area with high energy costs, a comparison of the device configuration information with the hardware qualification information may cause the device image manager 102 to identify two device images out of the initial set of ten that correspond to operating systems, software, or operating system configurations configured for low power usage. As still another example, if device configuration information such as a benchmark profile associated with a collection of computing devices 110 indicates that the collection of computing devices 110 is associated with a high network latency to a particular group of network clients, a comparison of the device configuration information with the hardware qualification information may cause device image manager 102 to identify one device image out of the initial set of ten that corresponds to an operating systems, software, or operating system configuration configured for long term backup or storage of content, rather than rapid service of content to the group of network clients. As still another example, a comparison of the device configuration information with hardware qualifications may cause the device image manager 102 to identify all ten of the initial set of device images as potential images for a collection of computing devices 110. Although the selection of a first set of device images that may be loaded on collection of computing devices 110 and the selection of a second subset of device images is described here for the purpose of example as two logical steps, it should be understood that the process of identifying one or more appropriate device images may be implemented or executed in one, two, or any other number of logical steps by the device image manager 102.
Once the device image manager 102 has selected a set of device images for the collection of computing devices 106, device image manager 102 may cause the selected device image to be transferred to the collection of computing devices 110.
With reference now to
The device image manager 102 may next transfer the device image update to the determined computing device 106A. The device image update may correspond to a full copy of the updated device image, to a portion of the updated device image, or to other information sufficient to allow the computing device 106A to update a device image. By way of non-limiting example, a device image update may correspond to a patch file for a device image, or to an executable which updates the device image when processed by the computing device 106A. In some embodiments, device image manager may transmit a location of a device image update file to the computing device 106A. The location of the image file may, in some instances, correspond to other computing devices 106 or to other storage devices. Where a location of a file is specified, the computing device 106 may further retrieve the image update file from the specified location.
After reception of the device image update, the computing device 106A may then update the device image using the device image update. One skilled in the art will appreciate that the method used to update the device image may vary according to the format of the device image update. For example, where the device image update is an executable file or a patch, the computing device 106A may execute the file. Where the device image update is a new device image, the computing device 106A may replace the non-updated device image in device image storage with the updated device image 106A. Other variations will be recognized by one skilled in the art without departing from the scope of this disclosure.
With reference now to
At block 504, the device image manager 102 determines the set of device images which should be sent to the determined set of computing devices 106. As discussed above with respect to
At block 506, once both the set of computing devices and set of device images has been determined, the device image manager 102 may transmit or cause the transmission of the set of device images to the set of computing devices. As discussed previously with respect to
With reference now to
With continued reference to
At block 554, the device image manager 102 determines the set of computing devices which are to be provisioned. In some embodiments, the computing devices which are to be provisioned may be based on the provision event which was detected. Provisioning may occur on a single computing device 106 or a group of computing devices 106.
At block 556, the device image manager 102 may optionally update a device image which has been stored by the computing devices 106 which are to be provisioned. This may correspond to requesting a device image update from the device image manager 102. This device image update may then be used to update a device image prior to loading the device image.
At block 558, a provision command is sent to the determined computing devices 106 to be provisioned. As discussed above with respect to
With reference to
With continued reference to
After obtaining the device images, at block 604 the computing device 106 may store those device images on device image storage 108 such that they will be accessible in the future. As discussed above, storage 108 may correspond to a hard disk drive of the computing device 106, to network attached storage, or to any storage medium sufficient to store the device images such that they are available during provisioning. As will be appreciated by one skilled in the art, blocks 602 and 604 may, in some embodiments, be repeated a number of times before the routine continues to block 606.
At block 606, the computing device 106 receives a provision command from the device image manager 102. In this illustrative example, the provision command specifies multiple device images to be loaded by the computing device 106, as described above in
At block 608, the computing device 106 determines whether the boot image specified in the provision command exists within local storage 108. If the boot image does not exist within local storage, computing device 106 proceeds to block 612 and requests the necessary boot image from the device image manager 102. Optionally, if the boot image does exist within local storage, the computing device 106 may update the boot image before proceeding. This may correspond to requesting a device image update from the device image manager 102. This device image update may then be used to update a device image prior to loading the device image.
At block 614, after gaining access to the boot image, the computing device 106 reboots itself in order to load the boot image. In this illustrative embodiment, the computing device 106 loads the boot image into RAM during the boot process. As described above, the boot image contains a temporary operating system which enables the computing device to gain unrestricted write access to an image destination storage device on which the provision image will be loaded. The boot image further contains code which allows the computing device 106 to load the provision image.
At block 616, the computing device 106 determines whether the provision image specified within the provision command exists within local storage 108. If the provision image does not exist within local storage 108, the computing device 106 may request the provision image from the device image manager 102. Optionally, if the provision image does exist within local storage the computing device 106 may update the provision image before proceeding. As will be appreciated by one skilled in the art, though blocks 616-620 are described subsequently to blocks 608-14, blocks 616-620 may be performed at any point between receiving a provision command at block 606 and loading the provision image.
At block 622, the computing device 106 may provision itself with the provision image. In this illustrative embodiment, provisioning corresponds to writing the operating system and information contained within the provision image to a destination storage device associated with the computing device 106. After writing the information within the provision image, the computing device 106 may reboot in order to load the operating system within the provision image. In this manner, the computing device 106 may be provisioned to carry out a desired functionality associated with the provision image.
At block 624, after provisioning the computing device 106 with the provision image, the computing device 106 reboots itself in order to load the provision image. In this illustrative embodiment, the computing device 106 loads the software contained within the provision image from a storage. As such, the computing device 106 is able to implement the functionality associated with the provision image. The routine 600 may then end.
It will be appreciated by those skilled in the art and others that all of the functions described in this disclosure may be embodied in software executed by one or more processors of the disclosed components and mobile communication devices. The software may be persistently stored in any type of non-volatile storage.
Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art. It will further be appreciated that the data and/or components described above may be stored on a computer-readable medium and loaded into memory of the computing device using a drive mechanism associated with a computer readable storing the computer executable components such as a CD-ROM, DVD-ROM, or network interface further, the component and/or data can be included in a single device or distributed in any manner. Accordingly, general purpose computing devices may be configured to implement the processes, algorithms, and methodology of the present disclosure with the processing and/or execution of the various data and/or components described above.
It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
Patent | Priority | Assignee | Title |
9959106, | Nov 14 2013 | International Business Machines Corporation | Sharing of portable initialized objects between computing platforms |
Patent | Priority | Assignee | Title |
6421777, | Apr 26 1999 | ServiceNow, Inc | Method and apparatus for managing boot images in a distributed data processing system |
6567774, | Jan 30 1998 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk |
7082527, | Jun 11 2003 | Intel Corporation | Method and system for rapid repurposing of machines in a clustered, scale-out environment |
7103762, | Jan 31 2003 | INTERNATIONAL BUSINESS MACHINES CORPOIRATION | Using a cache and data transfer methodology to control real-time process data in a PXE pre-boot manufacturing environment |
7487343, | Mar 04 2005 | NetApp, Inc | Method and apparatus for boot image selection and recovery via a remote management module |
7664834, | Jul 09 2004 | GOODRICH, JOHN B ; NEW CHECKERBOARD CATTLE AND COMPUTER CORPORATION; Microsoft Technology Licensing, LLC | Distributed operating system management |
7945751, | Dec 18 2006 | International Business Machines Corporation | Disk image inheritance |
8112505, | Oct 20 2009 | VMWARE, INC | On-demand block-level file system streaming to remote desktops |
8244836, | Aug 29 2008 | Red Hat, Inc.; Red Hat, Inc | Methods and systems for assigning provisioning servers in a software provisioning environment |
8302091, | Jun 05 2006 | International Business Machines Corporation | Installation of a bootable image for modifying the operational environment of a computing system |
8326972, | Sep 26 2008 | Red Hat, Inc.; Red Hat, Inc | Methods and systems for managing network connections in a software provisioning environment |
8332689, | Jul 18 2001 | VEEAM SOFTWARE GROUP GMBH | Systems, methods, and computer program products for instant recovery of image level backups |
8386757, | Feb 13 2009 | Citrix Systems, Inc | Managed desktop system |
8639917, | Oct 20 2009 | VMWARE, INC | Streaming a desktop image over wide area networks in which the desktop image is segmented into a prefetch set of files, streaming set of files and leave-behind set of files |
20010047406, | |||
20030051128, | |||
20030126242, | |||
20050273588, | |||
20060047946, | |||
20080027950, | |||
20090049160, | |||
20090193245, | |||
20100125770, | |||
20100223610, | |||
20100306337, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 26 2011 | FORD, DANIEL M | Amazon Technologies, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 026512 | /0467 | |
May 27 2011 | Amazon Technologies, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Oct 14 2019 | REM: Maintenance Fee Reminder Mailed. |
Mar 30 2020 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 23 2019 | 4 years fee payment window open |
Aug 23 2019 | 6 months grace period start (w surcharge) |
Feb 23 2020 | patent expiry (for year 4) |
Feb 23 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 23 2023 | 8 years fee payment window open |
Aug 23 2023 | 6 months grace period start (w surcharge) |
Feb 23 2024 | patent expiry (for year 8) |
Feb 23 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 23 2027 | 12 years fee payment window open |
Aug 23 2027 | 6 months grace period start (w surcharge) |
Feb 23 2028 | patent expiry (for year 12) |
Feb 23 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |