Abstract:
The present invention provides a system and method for generating models of a computer system. The method involves generating an original model of a computer system in an original configuration, and performing an original series of changes of the original model to yield an intermediate model. The original series of changes is recorded. The method further involves tracking the actual configuration of the computer system so as to detect a revised configuration of the computer system. Then, a resultant model is generated that corresponds to the computer system in a potential resultant system configuration that would result from a series of reconfigurations corresponding to said original series of changes or a revision thereof being applied to the system in its revised configuration rather than in its original configuration.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    Herein, related art may be discussed to put the invention in context. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art. 
         [0002]    In data centers, computer systems are often reconfigured to expand capabilities or more effectively utilize existing resources. The performance, utilization, or other metric resulting from a proposed reconfiguration can be estimated by modeling the proposed reconfiguration and its operation. The model for the reconfiguration is typically reached by modifying a model of an actual configuration. However, the process of reconfiguring and evaluating models may extend over days, weeks, or months. In the meantime, some actual reconfigurations may have taken place, either due to an unplanned failure or some upgrade or modification that is not coordinated with the main reconfiguration planning processor. In that case, the reconfiguration process may have to be restarted from the new actual configuration. The present invention addresses this and other problems as is apparent from the description below with reference to the following drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0003]    The following drawings are of embodiments of the invention and not of the invention itself. In the Figures, a dot-dash style border indicates a graphical representation generated in accordance with an embodiment of the present invention. 
           [0004]      FIG. 1  is a combination of a schematic diagram and a flow chart of a system and a method in accordance with an embodiment of the invention. 
           [0005]      FIG. 2  depicts possible aspects of the method of  FIG. 1  under a first scenario. 
           [0006]      FIG. 3  depicts possible aspects of the method of  FIG. 1  under a second scenario. 
           [0007]      FIG. 4  depicts possible aspects of the method of  FIG. 1  under a third scenario. 
       
    
    
     DETAILED DESCRIPTION 
       [0008]    The present invention provides for recording an original series of changes made to an original model of a computer system in an original configuration. If, in the meantime, the computer system assumes a revised configuration, a model generator generates a resultant model corresponding to the computer system in a potential resultant configuration corresponding to the revised configuration with the series of changes applied. If the series of changes is inconsistent with the revised configuration, the series can be revised before being applied to the revised configuration. 
         [0009]    A management computer system AP 1 , shown in  FIG. 1 , is used to reconfigure and otherwise manage other computer systems in a managed data center  20 . Management computer system AP 1  includes a processor  11 , media  13 , which can include disk storage and solid-state memory, and input/output devices  15 . Input-output devices can include a network interface card connecting management computer system AP 1  to a network; in this case, a management workstation on the network can provide for user interface devices such as a display, mouse, and keyboard for interacting with computer models. In an alternative embodiment, the input devices can include a display, a keyboard, and a mouse for interface with an administrative user  17 , and a network interface card for interfacing with computers in the managed data center  20 . 
         [0010]    Media  13  stores software components including a graphic user interface P 1 , a configuration tracker P 2 , a configuration controller P 3 , a model generator P 4 , a simulator P 5 , and a model change recorder P 6 . Model generator P 4  generates models of data center  20 , including models M 1 , M 2 , M 3 , and M 4 . Recorder P 6  records series of changes to the models, including change series CH 1  and CH 2 . Collectively, these software components implement a program and method ME 1 , represented in  FIG. 1  as having method segments MS 0 -MS 9 . 
         [0011]    Method ME 1  starts with a computer system, e.g., data center  20 , in an original configuration, at method segment MS 0 . An original model M 1  of data center  20  in its original configuration is generated at method segment MS 1 . At method segment MS 2 , the original model is changed, e.g., by user  17  using computer input devices such as a mouse and keyboard, to define a revised model M 2 . Model change recorder P 6  records this original series of changes at method segment MS 3  so as to generate recorded series of changes CH 1 . 
         [0012]    Configuration tracker P 2  detects a revised configuration of data center  20 , at method segment MS 4 . In the illustrated embodiment, the actual system configuration is checked periodically. In alternative embodiments, the detection can be in response to a user action, e.g., either in response to a request to check the system configuration or in response to a user request to generate a new model. 
         [0013]    At method segment MS 5 , model generator P 4  determines whether or not the current actual system configuration is consistent with the recorded series of model changes CH 1 . If the actual configuration has changed since first model M 1  was generated, the original series of changes applied to first model M 1  may or may not be consistent with the revised configuration. For example, a change involving adding memory to a server that has failed in the interim is inconsistent with the revised configuration including the failed server. If it is inconsistent with the revised configuration, the stored series of changes CH 1  can be revised to yield a revised series of changes CH 2  at method segment MS 6 . 
         [0014]    If at method segment MS 5  the proposed changes are consistent or once they are made consistent at method segment MS 6 , model generator P 4  generates a resultant model M 4  corresponding to the revised configuration with the original or revised series of changes applied at method segment MS 7 . In the illustrated embodiment, model generator P 4  first generates revision model M 3 , corresponding to data center  20  in its revised configuration; then, depending on the outcome of the consistency determination at method segment MS 5 , model generator P 4  applies either original change series CH 1  or revised change series CH 2  to revision model M 3  to obtain resultant model M 4 . In an alternative embodiment, a revision model is not explicitly generated. 
         [0015]    The performance, utilization, or other metrics of the proposed reconfiguration is evaluated by simulation at method segment MS 8 . If the simulation results are positive, the proposed reconfiguration can be implemented on the actual computer system at method segment MS 9 . Alternatively, the new configuration can be implemented at method segment MS 9  without first running the simulation of method segment MS 8 , as indicated by dashed arrow D between method segments MS 7  and MS 9 . 
         [0016]    A first scenario for method ME 1  is depicted in  FIG. 2 . The original configuration of a data center  20  is represented at  21 , while original model M 1  is represented at  23 . A proposed change series  25  comprises five reconfiguration steps: adding two CPUs to server S 1  at  31 , adding an application A 3  to server S 1  at  33 , moving application A 2  from server S 2  to S 1  at  35 , removing server S 2  at  37 , and removing application A 1  from server S 1  at  39 . 
         [0017]    While this proposed change series was set aside and being considered, two gigabytes of memory is added to server S 1  at method segment M 20 , yielding the revised configuration shown at  41 . When the proposed change series is next displayed this new actual configuration is detected at method segment MS 4  ( FIG. 1 ). At method segment MS 5 , it is determined that the revised actual configuration is consistent with proposed change series  25 . Accordingly, method segment MS 6  is bypassed. At method segment MS 7 , a graphic representation  43  of the result of applying proposed change series  25  to the current configuration  41  of data center  20  is generated. A performance simulation is applied to the model corresponding to the graphic representation shown at  43 . If the simulation is favorable, the configuration at  43  can be implemented in actual data center  20 . 
         [0018]    A second scenario for method ME 1  is shown in  FIG. 3 . The same proposed change series  25  is involved, but at method segment M 30  application A 1  is removed from actual server S 1 , yielding the data center  20  as represented at  51  in  FIG. 3 . At method segment MS 5 , the consistency of proposed change series  25  with current actual data configuration  51  is checked and an inconsistency is noted. At method segment MS 6 , the last step  39  in the change series is removed (the removal indicated by the dashed line). At method segment MS 7 , a representation  53  of the result of applying the revised proposed change series to actual configuration  51  is generated as indicated in  FIG. 3 . Using the graphical user interface, the user is warned that a proposed change has already been implemented in the managed data center. 
         [0019]    A third scenario for method ME 1  is indicated in  FIG. 4 . The original proposed change series  25  is not shown in  FIG. 4 , but is the same as for the scenarios of  FIG. 2  and of  FIG. 3 . In the meantime, the lease expires for server S 1 , which is taken off line. This results in the new actual configuration shown at  71 . At method segment MS 5 , it is determined that the proposed changes to server S 1  cannot be applied. Accordingly, proposed change series  25  is scrapped in favor of a revised proposed change series  60  at method segment MS 6 . 
         [0020]    The new series  60  is based on shifting work to still-licensed server S 2  instead of using expired server S 1 . Series  60  includes adding two CPUs for server S 2  at change  61 , adding two gigabytes (2 GB) of memory to server S 2  at change  63 , and adding application A 3  to server S 2  at change  65 . After a recheck of the current actual configuration of data center  20  (assuming no further actual configuration changes), this revised series  60  is applied to a newly generated model  73  of current actual data center  20  to yield resultant model  75 . The simulation is applied to resultant model  75  at method segment MS 8 , and the configuration of model  75  is applied to data center  20  at MS 9 . Method ME 1  can be applied recursively in that method segments MS 2 -MS 7  can be applied to the intermediate or resultant model and, in general, to any model generated by model generator P 4 . 
         [0021]    Herein, a “configuration” is an arrangement of computer elements, including hardware, software, and firmware, that specifies their nature, number, and other characteristics that affect system function and performance. Herein, one series of changes is a “revision” of an original series of changes if the revision is derived by adding, deleting and changing changes of the original series. A series of changes generated independently (i.e., “from scratch”) would not qualify as a “revision” as that term is used herein. 
         [0022]    The invention applies to centrally managed multi-computer systems. Any number of computers can be involved; the computers can be complexes partitioned using partitioning solutions such as hard partitions or virtual partitions. The numbers of CPUs, the amount of memory, and the nature and quantity of I/O devices are different for different embodiments. The manner in which a system is represented graphically can vary, as can the methods used to manipulate the graphic images. These and other variations upon and modifications to the illustrated embodiments are provided for by the present invention, the scope of which is defined by the following claims.