Description of the Invention
METHOD FOR PROVISIONING A SERVER IN A COMPUTER ARRANGEMENT
This invention relates to a method for provisioning a server in a computer arrangement, in particular in a computer arrangement which comprises a plurality of servers, designated to provide services to clients over a network, at least one administration means, set up to control the usage of said servers by making provisioning decisions (based on input parameters and predetermined rules) and a deployment server connected to the at least one administration means and to the servers, set up to provision the servers according to the provisioning decisions of the administration means.
Computer networks typically include at least one computer called a server and one or more computers called clients. Clients can request certain services over the network which are provided by the servers .
Often a network service provider runs a plurality of servers (called a server farm) in order to be able to handle all incoming requests. Considering the growing size of modern server farms which can consist of hundreds of servers there is an increasing demand to automate administrative tasks like allocating available resources, i.e. servers, and configuring them. The approach to automate administrative tasks is known as autonomous computing (AC) . A central element in an AC- environment is an administration means to perform administrative tasks. Sometimes, the administration means in AC is referred to as a decision engine (DE) or a control means. Usually the administration means is hosted on a computer within the network that is neither server nor
client, but specifically designated for administrative tasks.
The administration means is capable of dynamically allocating or freeing servers and setting them up to provide services for which an actual demand exists. This process of allocating and setting up servers is also called "provisioning of servers".
Different methods to provision servers by an administration means are known. One way is to remotely start or stop instances of an application depending on requirements. This bears the danger of collecting remains of all applications that were once started and stopped again (like temporary files) which might lead to an unstable and slow system. Therefore, often another approach, sometimes called "bare- metal provisioning", is chosen, where for each new task
(different customer, different applications) a whole boot image is transferred to a server and the server is re-booted with the new boot image.
Sometimes the decision making process is separated from the actual process of provisioning. In such a case, the decision making component is still referred to as the administration means (or decision engine) and the unit that carries out the actual provisioning is called a deployment server.
Decisions of the administration means are based on a number of criteria and basic conditions, like actual demands, the capacity that is theoretically available and the actual capacity which might be decreased due to failures. Also, non- technical but economical considerations, for example different priorities of certain services, might be taken into account. Therefore, customers of server farms often prefer to use an administration means which is optimized to meet their
requirements. This results in a situation, in which several administration means are used in a computing arrangement in parallel, usually in combination with a common deployment server. Problems then arise if two or more administration means try to provision the same server. So far, this could only be prevented by the intervention of a human administrator, e.g. by manually dividing the available servers into subsets and assigning different subsets to different administration means. This solution has the disadvantage of being very inflexible. Since it is difficult to manually check and re-adjust the size of subsets continuously, this solution is likely to lead to a situation in which unused servers are present in one subset and overloaded servers in another. It is also an expensive and error-prone solution.
It is therefore an objective of the present invention to provide a method for provisioning a server in a computer arrangement, which allows more than one administration means to utilize the servers and which nonetheless prevents a server from being influenced by different administration means at the same time. It is another objective to present a computer arrangement which is suitable to perform the method.
In order to accomplish the above object, a method of the aforementioned kind is provided, where:
- prior to a provisioning request, a reservation request concerning one of the servers is transmitted from the administration means to the deployment server; - upon reception of a reservation request, the reservation is granted and the reservation information is updated if the concerned server it is not already reserved, or
otherwise, the reservation is denied if the concerned server it is already reserved; - upon reception of a provisioning request by one of the administration means concerning one of the servers, the provisioning is performed if the concerned server is reserved by said server and denied otherwise.
Concerning the computer arrangement, the objective is accomplished by a computer arrangement according to claim 5.
According to the invention a reservation system for servers is created within the deployment server. Before any user of the deployment server, i.e. any automated or human administration means, can use a server, it has to exclusively reserve the server. Once a server is reserved for a given administration means, no other administration means can use it. This reservation system prevents the server to be used by two or more interfering administration means without having a rigid and inflexible assignment between servers and administration means.
Other features which are considered as characteristic for the invention or which describe advantageous embodiments of the present invention are set forth in the dependent claims.
The above and other objects, features and advantages of the present invention will become apparent from the following description in conjunction with the accompanying drawings.
In the drawings:
Fig. 1 is a conceptual diagram of one embodiment of a computer arrangement according to the invention and
Fig. 2 is a flow-chart of one embodiment of a method for provisioning a server in a computer arrangement according to the invention.
Figure 1 shows three administration means 1 (IA, IB, 1C) which are connected to a deployment server 2. The deployment server 2 is in charge of a group 4 of several servers 3 (3A to 3F) . The group 4 of servers 3 is divided into several subsets 4A to 4C, of which subset 4A comprises the servers 3A t to 3C, subset 4B comprises the servers 3D and 3E and subset
4C comprises server 3F.
For reasons of simplicity the computer arrangement shown in Figure 1 is limited to those parts which are characteristic for the invention. For example, although no network connection over which the servers 3 provide their services is displayed, it is to be understood that such an obvious component is present in an implementation of the invention.
Also, the numbers of administration means 1 and servers 3 shown in the diagram are just exemplary. Computer arrangements for providing services to clients over a network often comprise several tens or even hundreds of servers . The invention can be easily applied to computer arrangements (server farms) of any size. The servers 3 can either be independent physical units, for example blade servers, or can be virtual servers. Virtual servers share a common hardware which runs a software that emulates several hardware units .
In the example shown, three administration means 1 are present, two of which (IA and IB) are autonomous computing solutions, e.g. working for different customers using the
computer arrangement. The third administration means is a human user, for example a system administrator, using a terminal or any other input/output means. Although the purpose of the present invention is primarily to control the provisioning of servers 3 by automated administration means IA and IB, system administrators can take advantage of the reservation system provided, e.g. to get undisturbed access to servers 3 for maintenance purposes.
The three administration means 1 are connected to the deployment server 2 which is set up to receive messages from and send messages to the administration means 1. The deployment server 2 is in authority over all servers 3 belonging to the group 4. The deployment server 2 is connected to all these servers 3, here by way of example the six servers 3A to 3F, and set up to provision these servers 3. As mentioned earlier, different methods to provision servers are known, for example bare metal provisioning or starting and stopping of servers and applications hosted on the servers. All techniques to provision and control servers could be used by the deployment server 2. The connections between deployment server 2 and administration means 1 or servers 3, respectively, could be realized as an independent network for security and/or performance reasons. In another embodiment, the same network that connects the servers 3 to clients could also be used to exchange the messages between the administration means 1 and the deployment server 2 and to transmit the provisioning and control information between the deployment server 2 and the servers 3.
In Figure 1, the servers 3 contained in the subsets 4A, 4B, 4C are reserved to be used by the administration means IA, IB, 1C, respectively. The reservation procedure according to
the invention which led to the formation of the logical subgroups 4A, 4B and 4C is described in the following in connection with Figure 2.
Figure 2 shows a flow-chart of an embodiment of a method according to the present invention.
In step A a request is sent from one of the administration means 1 to the deployment server 2. The request can either concern the reservation of a certain server 3 or a number of servers 3 for future provisioning, or it can concern the provisioning of a particular server 3 that has already been reserved beforehand.
After reception of the request, the deployment server 2 analyses the request in step B and branches to step C if the request is a reservation request or it branches to step G if the request is a provisioning request. Requests could be of any format agreed on, but preferably a well-structured description language, for example XML (extensible Mark-up Language) is used.
Assuming now that the request received by the deployment server 2 is a reservation request, the method continues with step C. The reservation request can either be directed towards a particular server 3 or towards a number of servers 3 for subsequent provisioning. In the first case, a unique identifier of the particular server 3 to be reserved is transmitted. This unique identifier could, for example, be a network name or a network address of the particular server 3 within the computer arrangement. This first case of reservation request could for example be used if an administration means IA or IB likes to make use of a
particular server 3 due to its performance. It would also be used if a system administrator (administration means 1C) would like to perform maintenance or debugging tasks on a particular server 3. The second case will be used if it is irrelevant, which server 3 or servers 3 will be reserved, as long as the requested number of servers 3 is available. In another embodiment of the invention, a third type of reservation request could be implemented, which is not directed to particular servers 3 but on certain types of servers 3. Administration means 1 could then, for example, request a certain number of a first type of servers 3 and another number of a second type of servers 3, where the types of servers 3 differ in their performance or the operating system or the architecture of the servers 3.
The deployment server 2 now checks whether it is possible to make the reservation or not. If the request concerns a particular server 3, the deployment server 2 will check whether this particular server 3 is still available or whether it is already reserved for another administration means 1. If the request concerns a number of servers 3, the deployment server 2 will look for available, i.e. not yet reserved servers 3 and will generate a list of identifiers of these servers 3. The identifiers can again be the network names or network addresses of the servers 3. All reservation information is kept by the deployment server in a list or a table or any other appropriate data structure.
If it is not possible to make the requested reservation, a message to report the negative result is generated and transmitted to the requesting administration means 1 in step D.
If a successful or partly successful reservation was made, the reservation information is updated accordingly in step E. In step F, a message is then generated to report the positive result of the reservation process. If a number of servers was asked for, the message also contains the list comprising the identifiers of the reserved servers 3. The message is transmitted back to the administration means 1 that sent the request. The method then restarts with step A, ready to receive further requests.
After the reception of a positive report on a reservation request the administration means 1 is now informed that a particular server 3 is available or, if a number of servers was requested for, the administration means 1 now possess the identifiers of the reserved servers 3.
The administration means 1 then sends the actual provisioning request to the deployment server 2 (again step A) . This request is analyzed in step B to be a provisioning request and accordingly the method continues with step G.
A provisioning request contains at least the identifier of the server 3 to be provisioned and optional provisioning parameters . In step G the deployment server 2 ensures that the server 3 to be provisioned is reserved for the administration means 1 that sent the provisioning request.
If it is not, the provision is rejected and a negative message is generated in step H and sent back to the requesting administration means 1. If the server 3 is reserved for the requesting administration means 1, the server 3 is provisioned in step I of the method and a positive feedback message is sent back to the requesting
administration means in step J. The method starts again with step A, being ready for further requests.
Not shown in Figure 2 are further possible requests, e.g. to cancel a reservation. If the administration means 1 no longer needs a server 3 that is reserved for this administration means 1, it sends a cancellation request concerning this particular server 3 to the deployment server 2. The deployment server 2 then checks that this particular server 3 is indeed reserved for the requesting administration means 1. If it is, the reservation is cancelled and the reservation information is updated accordingly.
It is to be understood that the invention can be embodied in other specific forms without departing from the spirit or essential character thereof. The presently disclosed embodiments are therefore considered in all respects to be illustrative and not restrictive.
List of Reference Signs
1 administration means
IA, IB automated administration means 1C system administrator
2 deployment server
3 server
4 group of servers provisioned by deployment server 2 4A subset of servers 3 reserved for admin, means IA 4B subset of servers 3 reserved for admin, means IB 4C subset of servers 3 reserved for admin, means 1C