Programmatic instantiation, and provisioning of servers
A networked computing system is taught that may be operated as one or more provisioned servers, each of the provisioned servers including capabilities as identified by a corresponding set of specifications and attributes, according to various embodiments. Typically the specifications (or constraints) and attributes are specified with a Server Configuration File. The networked computing system may be provisioned into any combination and number of servers according to needed processing and I/O capabilities. Each of these servers may include distinct compute, storage, and networking performance. Provisioned servers may be managed similar to conventional servers, including operations such as boot and shutting down.
1. A method including the steps of:
accessing a networked computing system template;
automatically instantiating a networked computing system according to the template; and
wherein
the template includes a hardware manifest of required hardware primitives, and
the hardware manifest includes a description of a required number of partitions of a plurality of partitionable symmetric multiprocessors.
2. The method of claim 1 , wherein:
the template is an instance of a server specification.
3. The method of claim 1 , wherein:
the networked computing system is an instance of a provisioned server.
4. The method of claim 1 , wherein:
the act of instantiating the networked computing system is an instance of forming a provisioned server.
5. The method of claim 1 , wherein:
the hardware manifest is an instance of a hardware specification.
6. The method of claim 1 , wherein:
the act of automatically instantiating includes programmatically managing a free primitives pool.
7. The method of claim 6 , wherein:
the act of automatically instantiating further includes programmatically allocating resources from the free primitives pool according to the template.
8. The method of claim 1 , wherein:
the partitions are physical partitions and the partitionable symmetric multiprocessors are physically-partitionable symmetric multiprocessors.
9. The method of claim 1 , wherein:
each of the partitions couples to a switch fabric via a switch fabric interface.
10. The method of claim 9 , wherein:
each of the partitions is designed to independently couple to the switch fabric.
11. The method of claim 1 , wherein:
each of the partitionable symmetric multiprocessors is partitionable into a plurality of configurations, including a first configuration having a first number of partitions, and a second configuration having a second number of partitions.
12. The method of claim 11 , wherein:
the configurations include a third configuration having a single partition.
13. The method of claim 1 , wherein:
the template further includes hardware configuration information.
14. The method of claim 1 , wherein:
the template further includes a software manifest of required software primitives.
15. The method of claim 14 , wherein:
the template further includes software configuration information.
16. The method of claim 1 , wherein:
the required hardware primitives include a description of required compute primitives.
17. The method of claim 16 , wherein:
the required compute primitives include required application compute primitives.
18. The method of claim 17 , wherein:
the required number of partitions corresponds to a subset of the required application compute primitives.
19. The method of claim 16 , wherein:
the required compute primitives include required service compute primitives.
20. The method of claim 1 , further including:
altering the template.
21. The method of claim 20 , wherein:
the act of altering is at least in part via a command line interface.
22. The method of claim 20 , wherein:
the act of altering is at least in part via a graphical user interface.
23. A system comprising:
a processor; and
a memory coupled with and readable by the processor and storing a set of instructions which, when executed by the processor, cause the processor to perform a process comprising:
accessing a networked computing system template;
automatically instantiating a networked computing system according to the template; and wherein
the template includes a hardware manifest of required hardware primitives, and the hardware manifest includes a description of a required number of partitions of
a plurality of partitionable symmetric multiprocessors.
24. The system of claim 23 , wherein:
the template is an instance of a server specification.
25. The system of claim 23 , wherein:
the networked computing system is an instance of a provisioned server.
26. The system of claim 23 , wherein:
the act of instantiating the networked computing system is an instance of forming a provisioned server.
27. The system of claim 23 , wherein:
the hardware manifest is an instance of a hardware specification.
28. The system of claim 23 , wherein:
the act of automatically instantiating includes programmatically managing a free primitives pool.
29. The system of claim 28 , wherein:
the act of automatically instantiating further includes programmatically allocating resources from the free primitives pool according to the template.
30. The system of claim 23 , wherein:
the partitions are physical partitions and the partitionable symmetric multiprocessors are physically-partitionable symmetric multiprocessors.
31. The system of claim 23 , wherein:
each of the partitions couples to a switch fabric via a switch fabric interface.
32. The system of claim 31 , wherein:
each of the partitions is designed to independently couple to the switch fabric.
33. The system of claim 23 , wherein:
each of the partitionable symmetric multiprocessors is partitionable into a plurality of configurations, including a first configuration having a first number of partitions, and a second configuration having a second number of partitions.
34. The system of claim 33 , wherein:
the configurations include a third configuration having a single partition.
35. The system of claim 23 , wherein:
the template further includes hardware configuration information.
36. The system of claim 23 , wherein:
the template further includes a software manifest of required software primitives.
37. The system of claim 36 , wherein:
the template further includes software configuration information.
38. The system of claim 23 , wherein:
the required hardware primitives include a description of required compute primitives.
39. The system of claim 38 , wherein:
the required compute primitives include required application compute primitives.
40. The system of claim 39 , wherein:
the required number of partitions corresponds to a subset of the required application compute primitives.
41. The system of claim 38 , wherein:
the required compute primitives include required service compute primitives.
42. The system of claim 23 , further including:
altering the template.
43. The system of claim 42 , wherein:
the act of altering is at least in part via a command line interface.
44. The system of claim 42 , wherein:
the act of altering is at least in part via a graphical user interface.
45. A computer-readable memory device storing a set of instructions which, when executed by a processor, cause the processor to perform a process comprising:
accessing a networked computing system template;
automatically instantiating a networked computing system according to the template; and wherein
the template includes a hardware manifest of required hardware primitives, and the hardware manifest includes a description of a required number of partitions of
a plurality of partitionable symmetric multiprocessors.
46. The computer-readable memory of claim 45 , wherein:
the template is an instance of a server specification.
47. The computer-readable memory of claim 45 , wherein:
the networked computing system is an instance of a provisioned server.
48. The computer-readable memory of claim 45 , wherein:
the act of instantiating the networked computing system is an instance of forming a provisioned server.
49. The computer-readable memory of claim 45 , wherein:
the hardware manifest is an instance of a hardware specification.
50. The computer-readable memory of claim 45 , wherein:
the act of automatically instantiating includes programmatically managing a free primitives pool.
51. The computer-readable memory of claim 50 , wherein:
the act of automatically instantiating further includes programmatically allocating resources from the free primitives pool according to the template.
52. The computer-readable memory of claim 45 , wherein:
the partitions are physical partitions and the partitionable symmetric multiprocessors are physically-partitionable symmetric multiprocessors.
53. The computer-readable memory of claim 45 , wherein:
each of the partitions couples to a switch fabric via a switch fabric interface.
54. The computer-readable memory of claim 53 , wherein:
each of the partitions is designed to independently couple to the switch fabric.
55. The computer-readable memory of claim 45 , wherein:
each of the partitionable symmetric multiprocessors is partitionable into a plurality of configurations, including a first configuration having a first number of partitions, and a second configuration having a second number of partitions.
56. The computer-readable memory of claim 55 , wherein:
the configurations include a third configuration having a single partition.
57. The computer-readable memory of claim 45 , wherein:
the template further includes hardware configuration information.
58. The computer-readable memory of claim 45 , wherein:
the template further includes a software manifest of required software primitives.
59. The computer-readable memory of claim 58 , wherein:
the template further includes software configuration information.
60. The computer-readable memory of claim 45 , wherein:
the required hardware primitives include a description of required compute primitives.
61. The computer-readable memory of claim 60 , wherein:
the required compute primitives include required application compute primitives.
62. The computer-readable memory of claim 61 , wherein:
the required number of partitions corresponds to a subset of the required application compute primitives.
63. The computer-readable memory of claim 60 , wherein:
the required compute primitives include required service compute primitives.
64. The computer-readable memory of claim 45 , further including:
altering the template.
65. The computer-readable memory of claim 64 , wherein:
the act of altering is at least in part via a command line interface.
66. The computer-readable memory of claim 64 , wherein:
the act of altering is at least in part via a graphical user interface.