Claims
- 1. A system for providing dynamic server allocation and provisioning within a data center, wherein the data center includes a plurality of servers connected via a communications network, the system comprising:
a storage element for storing a plurality of server images available for loading onto the plurality of servers; a load manager capable of assigning one of the plurality of server images stored in said storage element to each of the plurality of servers; at least one server manager, coupled to each of the plurality of servers, and capable of controlling the power of each of the plurality of servers upon receiving commands from said load manager; a plurality of boot loaders, each residing on one of the plurality of servers and capable of receiving commands from said at least one server manager, in order to load one of the plurality of server images onto each of the plurality of servers; and a server monitor capable of receiving a heartbeat signal and a load measurement signal periodically from each of the plurality of servers via the communications network, and reporting said heartbeat signals and said load measurement signals to said load manager; whereby said load manager is able to allocate and provision the plurality of servers using said heartbeat signals, and according to a set of pre-determined criteria in response to said load measurement signals received from each of the plurality of servers.
- 2. The system of claim 1, further comprising:
a boot controller capable of exchanging messages with each of said plurality of boot loaders, said messages assisting said plurality of boot loaders in loading one the plurality of server images onto each of the plurality of servers.
- 3. The system of claim 2, wherein said messages exchanged between said boot controller and said plurality of boot loaders are Dynamic Host Configuration Protocol (DHCP) messages exchanged via the communications network.
- 4. The system of claim 1, further comprising:
a repository manager capable of aggregating a plurality of application software snapshots in order to form at least one server image, and storing said at least one server image on said storage element thereby making said at least one server image available for loading onto the plurality of servers.
- 5. The system of claim 4, wherein said plurality of application software snapshots is stored on said storage element such that a single copy of each of said plurality of application software snapshots can be shared among said plurality of server images.
- 6. The system of claim 4, further comprising:
a control console having a graphical user interface (GUI) for allowing a user to create said at least one server image from a subset of said plurality of application software snapshots.
- 7. The system of claim 1, wherein said server monitor comprises:
an emitter, residing on each of the plurality of servers, capable of generating said heartbeat signal and said load measurement signal; and a collector, residing on said control console, capable of receiving said heartbeat signal and said load measurement signal from said emitter process via the communications network.
- 8. The system of claim 1, further comprising:
an infrastructure controller capable of receiving commands from said load manager to configure switch ports on network switching equipment connected to a network interface on each of the plurality of servers.
- 9. The system of claim 1, wherein the storage element is comprised of at least one of the following: (i) a storage area network (SAN) device; (ii) a network attached storage (NAS) device; and (iii) a distributed file system (DFS).
- 10. The system of claim 1, wherein each of said plurality of system images is a bootable system image and includes a root file system, a kernel, and at least one executable software application.
- 11. The system of claim 1, wherein each of the plurality of servers is a virtual server residing on a single physical server and said at least one server manager is capable of resizing the partitions on said single physical server upon receiving commands from said load manager.
- 12. A system for remotely controlling the booting of a plurality of servers connected via a communications network within a data center, the system comprising:
a plurality of server images available for loading onto the plurality of servers and stored externally to each of the plurality of servers; a plurality of boot loaders, each corresponding to one of the plurality of servers and capable of loading one of said plurality of server images onto their respective server; and a boot controller, located remotely from each of the plurality of servers and capable of exchanging messages with each of said plurality of boot loaders via the communications network, which directs the actions of each of said plurality of boot loaders during the loading one of the plurality of server images onto their respective server; whereby each of the plurality of servers can assume a system image that is accessible to it via the communications network.
- 13. The system of claim 12, wherein said messages exchanged between said boot controller and said plurality of boot loaders are Dynamic Host Configuration Protocol (DHCP) messages exchanged via the communications network.
- 14. The system of claim 12, wherein at least one of said plurality of boot loaders resides in the flash memory of their respective server.
- 15. The system of claim 12, wherein at least one of said plurality of boot loaders is accessible to their respective server via said communications network.
- 16. The system of claim 12, wherein at least one of said plurality of boot loaders is accessible to their respective server via a serial line.
- 17. The system of claim 12, wherein at least one of said plurality of boot loaders is accessible to their respective server via a local storage element.
- 18. The system of claim 12, wherein each of said plurality of system images is a bootable system image and includes a root file system, a kernel, and at least one executable software application.
- 19. The system of claim 12, wherein said plurality of server images are stored in a storage element which is comprised of at least one of the following: (i) a storage area network (SAN) device; (ii) a network attached storage (NAS) device; and (iii) a distributed file system (DFS).
- 20. The system of claim 19, further comprising:
a repository manager capable of aggregating a plurality of application software snapshots in order to form at least one server image, and storing said at least one server image on said storage element.
- 21. The system of claim 20, wherein said plurality of application software snapshots is stored on said storage element such that a single copy of each of said plurality of application software snapshots can be shared among said plurality of server images.
- 22. The system of claim 21, further comprising:
a control console having a graphical user interface (GUI) for allowing a user to create said at least one server image from a subset of said plurality of application software snapshots.
- 23. The system of claim 12, wherein each of the plurality of servers is a virtual server residing on a single physical server.
- 24. A method for remotely managing server images for a plurality of servers connected via a communications network, the method comprising the steps of:
storing a plurality of server images on a storage element, wherein said storage element is external to the plurality of servers and accessible via the communications network; loading a plurality of boot loaders onto each of the plurality of servers, wherein each of said plurality of boot loaders is capable of loading one of said plurality of server images onto their respective server; and executing each of said plurality of boot loaders wherein each of said plurality of boot loaders exchanges messages with an external boot controller capable of directing the actions of each of said plurality of boot loaders during the loading of one of the plurality of server images onto their respective server; wherein each of the plurality of servers can assume a system image that is accessible to it via the communications network.
- 25. The method of claim 24, wherein said storage element is comprised of at least one of the following: (i) a storage area network (SAN) device; (ii) a network attached storage (NAS) device; and (iii) a distributed file system (DFS).
- 26. The method of claim 24, wherein said messages exchanged between said external boot controller and said plurality of boot loaders are Dynamic Host Configuration Protocol (DHCP) messages exchanged via the communications network.
- 27. The method of claim 24, wherein at least one of said plurality of boot loaders resides in the flash memory on its respective server.
- 28. The method of claim 24, wherein each of said plurality of system images is a bootable system image and includes a root file system, a kernel, and at least one executable software application.
- 29. A method for dynamic server allocation and provisioning among a plurality of servers connected via a communications network, comprising the steps of:
storing a plurality of server images on a storage element, said plurality of server images being available for loading onto the plurality of servers; assigning at least one of the plurality of server images stored in said storage element to at least one of the plurality of servers; powering on said at least one of the plurality of servers and loading said at least one of said plurality of server images onto said at least one of the plurality of servers; and receiving a heartbeat signal and a load measurement signal periodically from said at least one of the plurality of servers via the communications network; wherein a replacement server among the plurality of servers may be allocated, powered on, and provisioned either upon the detection of said at least one of the plurality of servers failing based upon said heartbeat signal, or according to a set of pre-determined criteria based upon said load measurement signal received from said at least one of the plurality of servers.
- 30. The method of claim 29, wherein the step of loading said at least one of said plurality of server images onto said at least one of the plurality of servers, further comprises the steps of:
installing a boot loader onto said at least one of the plurality of servers in order to facilitate loading of said at least one of said plurality of server images onto said at least one of the plurality of servers; and configuring the switch ports on said at least one of the plurality of servers.
- 31. The method of claim 29, wherein said storage element is comprised of at least one of the following: (i) a storage area network (SAN) device; (ii) a network attached storage (NAS) device; and (iii) a distributed file method (DFS).
- 32. The method of claim 29, wherein each of said plurality of system images is a bootable system image and includes a root file system, a kernel, and at least one executable software application.
- 33. The method of claim 29, further comprising the step of:
aggregating a plurality of application software snapshots in order to form at least one server image, and storing said server image on said storage element, thereby making said at least one server image available for loading onto the plurality of servers.
- 34. The method of claim 29, further comprising the step of:
storing said plurality of application software snapshots on said storage element thereby a single copy of each of said plurality of application software snapshots can be shared among said plurality of server images.
- 35. The method of claim 34, wherein said set of pre-determined criteria includes at least one of the following:
(i) a minimum number of the plurality of servers being assigned and executing said at least one server image; (ii) a maximum number of the plurality of servers being assigned and executing said at least one server image; (iii) a minimum average of said load measurement signals received from at least one of the plurality of servers being assigned and executing said at least one server image; (iv) a maximum average of said load measurement signals received from the plurality of servers being assigned and executing said at least one server image; (v) a pre-assigned priority for each of said plurality of server images; (vi) a pre-assigned costs for each of the plurality of servers, said costs being associated with the type of hardware configuration of each of the plurality of servers; (vii) a pre-assigned costs for each of the plurality of servers, said costs being associated with the type of software configuration of each of the plurality of servers; (viii) a pre-assigned costs for each of said plurality of server images; (ix) a pre-assigned costs for each of the plurality of servers, said costs being associated with each servers respective location within the communications network; and (x) a pre-assigned costs for each of the plurality of servers, said costs being associated with each servers respective ownership.
- 36. A computer program product comprising a computer usable medium having control logic stored therein for causing a computer to remotely managing server images for a plurality of servers connected via a communications network, said control logic comprising:
first computer readable program code means for causing the computer to store a plurality of server images on a storage element, wherein said storage element is external to the plurality of servers and accessible via the communications network; second computer readable program code means for causing the computer to load a plurality of boot loaders onto each of the plurality of servers, wherein each of said plurality of boot loaders is capable of loading one of said plurality of server images onto their respective server; and third computer readable program code means for causing the computer to invoke each of said plurality of boot loaders wherein each of said plurality of boot loaders exchanges messages with an external boot controller capable of directing the actions of each of said plurality of boot loaders during the loading of one of the plurality of server images onto their respective server.
- 37. The computer program product of claim 36, wherein said messages exchanged between said external boot controller and said plurality of boot loaders are Dynamic Host Configuration Protocol (DHCP) messages exchanged via the communications network.
- 38. A computer program product comprising a computer usable medium having control logic stored therein for causing a computer to perform dynamic server allocation and provisioning among a plurality of servers connected via a communications network, said control logic comprising:
first computer readable program code means for causing the computer to store a plurality of server images on a storage element, said plurality of server images being available for loading onto the plurality of servers; second computer readable program code means for causing the computer to assign at least one of the plurality of server images stored in said storage element to at least one of the plurality of servers; third computer readable program code means for causing the computer to power on said at least one of the plurality of servers; fourth computer readable program code means for causing the computer to load said at least one of said plurality of server images onto said at least one of the plurality of servers; and fifth computer readable program code means for causing the computer to receive a heartbeat signal and a load measurement signal periodically from said at least one of the plurality of servers via the communications network.
- 39. The computer program product of claim 38, further comprising:
sixth computer readable program code means for causing the computer to aggregate a plurality of application software snapshots in order to form at least one server image, and store said server image on said storage element, thereby making said at least one server image available for loading onto the plurality of servers.
Parent Case Info
[0001] This application claims priority from U.S. Provisional Application Ser. No. 60/331,122, filed Nov. 8, 2001. The entirety of that provisional application is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60331122 |
Nov 2001 |
US |