Abstract:
A method for provisioning servers in a computer arrangement allows more than one administrator to utilize the servers and prevents the servers from being influenced by more than one administrator at the same time. The computer arrangement includes at least one server, at least one administrator operable to control the usage of the servers by making provisioning decisions, and a deployment server operable to provision the servers according to the provisioning decisions of the administrators. An administrator is required to exclusively reserve the server before the administration unit can use the server. This prevents the server from being used by two or more interfering administrators, meanwhile allowing a flexible assignment between servers and administrators.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation of International Application No. PCT/EP2005/009399, filed on Aug. 31, 2005, entitled “Method for Provisioning a Server in a Computer Arrangement,” which claims the benefit of U.S. Provisional Application No. 60/608,525, filed on Sep. 9, 2004, the entire contents of which are hereby incorporated by reference. 
     
    
     BACKGROUND  
       [0002]     Computer networks typically include at least one computer called a server and one or more computers called clients. Clients can request certain services provided over the network which are provided by the servers.  
         [0003]     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 and configuring available resources, i.e., servers. The approach to automate administrative tasks is known as autonomous computing (AC). A central element in an AC-environment is an administration capability, referred to herein as an “administrator,” to perform administrative tasks. Sometimes, the administrator in AC is referred to as a decision engine (DE) or a controller, for example. Usually the administrator is hosted on a computer within the network that is neither a server nor a client, but specifically designated for administrative tasks. The administrator 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 (i.e., configuring) servers is also called “provisioning of servers.” 
         [0004]     Different methods to provision servers by an administrator are known. One known 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 (e.g., 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 (e.g., different customer, different applications) a whole boot image is transferred to a server and the server is re-booted with the new boot image.  
         [0005]     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 administrator (or decision engine) and the unit that carries out the actual provisioning is called a deployment server.  
         [0006]     Decisions of the administrator are based on a number of criteria and basic conditions (e.g., 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 administrator which is optimized to meet their requirements. This results in a situation in which several administrators are used in a computing arrangement in parallel, usually in combination with a common deployment server. Problems then arise if two or more administrators try to provision the same server. To date, this could be prevented only by the intervention of a human administrator, e.g., by manually dividing the available servers into subsets and assigning different subsets to different administrators. 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.  
       SUMMARY  
       [0007]     The invention generally relates to a method and computer arrangement for provisioning a server in a computer arrangement, in particular a computer arrangement which comprises a plurality of servers, designated to provide service to clients over a network, at least one administrator, set up to control the usage of the servers by making provisioning decisions (based on input parameters and predetermined rules), and a deployment server connected to the administrators and to the servers according to the provisioning decisions of the administrators.  
         [0008]     According to an exemplary embodiment of the invention, a method for provisioning servers in a computer arrangement allows more than one administrator to utilize the servers while nevertheless preventing the servers from being influenced by more than one administrator at the same time. An exemplary method for provisioning a server in a computer arrangement includes the following operations. Prior to a provisioning request, a reservation request concerning one of the servers is transmitted from the administrator 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 administrators concerning one of the servers, the provisioning is performed if the concerned server is reserved by the server and denied otherwise.  
         [0009]     According to another aspect of the invention, a reservation system for servers is created within the deployment server. Before any user of the deployment server (i.e., any automated administrator or human administrator) can use a server, it has to exclusively reserve the server. Once a server is reserved for a given administrator, no other administrator can use it. This reservation system prevents the server from being used by two or more interfering administrators without having a rigid and inflexible assignment between servers and administrations.  
         [0010]     The above and still further features and advantages of the method and computer arrangement will become apparent upon consideration of the following definitions, descriptions and descriptive figures of specific embodiments thereof, wherein like reference numerals in the various figures are utilized to designate like components. While these descriptions go into specific details of the method and computer arrangement, it should be understood that variations may and do exist and would be apparent to those skilled in the art based on the descriptions herein.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]     The method for provisioning a server and the computer arrangement is explained in more detail below with reference to exemplary embodiments, where:  
         [0012]      FIG. 1  is a conceptual diagram of one embodiment of the described computer arrangement according to an exemplary embodiment of the invention; and  
         [0013]      FIG. 2  is a flow-chart of one embodiment of the described method for provisioning a server in a computer arrangement according to an exemplary embodiment of the invention. 
     
    
     DETAILED DESCRIPTION  
       [0014]      FIG. 1  shows two automated administrators (or simply “administrators”)  1 A,  1 B, which are connected to a deployment server  2  and a human administrator  1 C capable of accessing the deployment server  2 . The deployment server  2  is in charge of a group  4  of several servers  3  ( 3 A to  3 F). The group  4  of servers  3  is divided into several subsets  4 A to  4 C, of which subset  4 A comprises the servers  3 A to  3 C, subset  4 B comprises the servers  3 D and  3 E and subset  4 C comprises server  3 F.  
         [0015]     For reasons of simplicity, the computer arrangement shown in  FIG. 1  is limited to those parts which are characteristic for the described computer arrangement. For example, although no network connection, over which the servers  3  provide their services to clients is shown, it is to be understood that such a component is present in an implementation of the computer arrangement.  
         [0016]     Also, the number of administrators and servers 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 described method can be easily applied to computer arrangements (server farms) of any size. The servers  3  can either be independent physical units (e.g., blade servers), or can be virtual servers. Virtual servers share a common hardware which runs software that emulates several hardware units.  
         [0017]     In the example shown, three administration means are present, two of which ( 1 A and  1 B) 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 human system administrator, using a terminal or any other input/output mechanism. Although a purpose of the invention is to control the provisioning of servers  3  via automated administrators  1 A and  1 B, human system administrators (i.e., users) can take advantage of the reservation system provided, e.g., to get undisturbed access to servers  3  for maintenance purposes.  
         [0018]     The administrators  1 A and  1 B are connected to the deployment server  2  which is configured to receive messages from and send messages to the administrators. The deployment server  2  is in authority over all servers  3  belonging to the group  4 . The deployment server  2  is connected to all of the servers  3 , as shown in  FIG. 1  (e.g., servers  3 A to  3 F), and configured to provision the servers  3 . As mentioned above, different methods to provision servers are known (e.g., 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 administrators  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 (not shown in  FIG. 1  for simplification), could also be used to exchange the messages between the administrators  1  and the deployment server  2  and to transmit the provisioning and control information between the deployment server  2  and the servers  3 .  
         [0019]     In  FIG. 1 , the servers  3  in subsets  4 A,  4 B, and  4 C are reserved to be used by the administrators  1 A,  1 B,  1 C, respectively. The reservation procedure according to the described method, which led to the formation of the logical subgroups  4 A,  4 B and  4 C is described in the following in connection with  FIG. 2 .  
         [0020]      FIG. 2  shows a flow-chart of an embodiment of the described method. In step A, a request is sent from one of the administrators  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 previously reserved.  
         [0021]     After reception of the request, the deployment server  2  analyzes 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 can be of any format agreed on, but preferably a well-structured description language, for example XML (eXtensible Mark-up Language) is used.  
         [0022]     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 administrator  1 A or  1 B prefers to make use of a particular server  3  due to the server&#39;s performance. It would also be selected if a human system administrator  1 C 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, a third type of reservation request can be implemented, which is not directed to particular servers  3  but on certain types of servers  3 . Administrator  1  can 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 .  
         [0023]     The deployment server  2  subsequently 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 administrator  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 the available servers  3 . The identifiers can again be, for example, 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.  
         [0024]     If it is not possible to make the requested reservation, a message to report the negative result is generated and transmitted to the requesting administrator  1  in step D.  
         [0025]     If a successful or partly successful reservation was made, the reservation information is updated accordingly in step E. In step F, a message is subsequently generated to report the positive result of the reservation process. If a number of servers was requested, the message also contains the list comprising the identifiers of the reserved servers  3 . The message is transmitted back to the administrator  1  that sent the request. The method then restarts with step A, ready to receive further requests.  
         [0026]     After the reception of a positive report on a reservation request, the administrator  1  is now informed that a particular server  3  is available or, if a number of servers was requested, the administrator  1  now possess the identifiers of the reserved servers  3 .  
         [0027]     The administrator  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.  
         [0028]     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 administrator  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 administrator  1 . If the server  3  is reserved for the requesting administrator  1 , the server  3  is provisioned in step I of the described method and a positive feedback message is sent back to the requesting administrator in step J. The method starts again with step A, being ready for further requests.  
         [0029]     Not shown in  FIG. 2  are further possible requests, e.g., to cancel a reservation. If the administrator  1  no longer desires a reserved server  3  that it reserved, the administrator  1  sends a cancellation request concerning this particular reserved server  3  to the deployment server  2 . The deployment server  2  subsequently checks that this particular reserved server  3  is indeed reserved for the requesting administrator  1 . If it is, the reservation is cancelled and the reservation information is updated accordingly.  
         [0030]     While the method and computer arrangement have been described in detail with reference to specific embodiments thereof, it will be apparent to one of ordinary skill in the art that various changes and modifications can be made therein without departing from the spirit and scope thereof. Accordingly, it is intended that the described method and computer arrangement cover the modifications and variations provided they come within the scope of the appended claims and their equivalents.