Abstract:
The present invention provides for check-pointing an non-clustered workload to make room for a clustered workload that was running on a computer system that has suffered a hardware failure.

Description:
BACKGROUND OF THE INVENTION 
   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. 
   In a high-availability computer system, upon failure of a clustered partition, its workload is typically transferred to another partition in that cluster. However, as the destination partition may already be running its own workload, the migration can result in adequate resources for the combination of the old and the migrated workload. To avoid this, each partition in a cluster can have sufficient resources to run an extra workload, but this type of over-provisioning can be expensive. The present invention provides for a more effective reallocation of resources in response to a failure of a clustered system. This provides an economic advantage since fewer spare resources are required to handle a system failure. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The following drawings are of embodiments/implementations of the invention and not of the invention itself. 
       FIG. 1  is a block diagram of a network of clustered computer systems in accordance with an embodiment of the invention. The computer systems are shown both before (at time T 1 ) and after (at time T 3 ) a failure of one of the systems at time T 2 . 
       FIG. 2  is a block diagram of the network of  FIG. 1  at a time T 4 . 
       FIG. 3  is a flow chart of a method in accordance with an embodiment of the invention practicable in the context of the system of  FIG. 1 . 
   

   DETAILED DESCRIPTION 
     FIGS. 1 and 2  depict a network AP 1  having clustered computer systems  10  and  20  and an unclustered computer system  30 . The remainder of network AP 1  includes a global workload manager GM, which can be a management workstation. Computer systems  10  and  20  are shown at the top of  FIG. 1  in respective configurations at a pre-failure time T 1  prior to a failure at a time T 2 . Computer systems  10  and  20  are shown at the bottom of  FIG. 1  in respective configurations at a post-failure time T 3 . 
   At pre-failure time T 1 , system  10  is configured so that it is running a workload manager WM 1  and two virtual machines V 11  and V 12 . Also at pre-failure time T 2 , system  20  is configured so that it is running a workload manager WM 2 , and virtual machines V 21  and V 22 . Systems  10  and  20  are clustered so that virtual machines V 11  and V 21  are in a common cluster CC. Virtual machines V 12  and V 22  are not in clusters. Herein, each virtual machine defines a respective partition. 
   As used herein and applied to computing resources (processors, memory, etc.), the term “clustered” describes an arrangement of partitions from different computer systems in which a workload from a failed clustered partition can be migrated to another partition in the cluster for high-availability applications. As applied to a virtual machine, the term “clustered” denotes that resources other than those it is currently utilizing are available to run it if the resources it is using fail. Typically, the resources are on another computing system. Thus, if system  10  fails, clustered virtual machine V 11  can be migrated to run on system  20 , while unclustered virtual machine V 12  will simply stop operating. 
   When a failure occurs, a clustered virtual machine can be moved or “migrated” from one system to another. Typically, this involves activating a previously inactive instance of a virtual machine on the resource computing system and then directing the recently activated instance to the data, e.g., on an external disk array that was being processed by the original instance of the virtual machine. 
   However, the unutilized resources on a system to which a virtual machine is being migrated may not match those available pre-failure to the original instance of the virtual machine. Typically, virtual machines are clustered because there is a need for them to be highly available. Running them on reduced resources is likely to compromise this availability. Accordingly, the present invention provides for reallocating resources from non-clustered virtual machines on a destination system to clustered virtual machines that are being migrated. This is explained further in connection with the description of method ME 1 . 
   A global workload manager GM implements the following method ME 1  in accordance with an embodiment of the invention, as flow-charted in  FIG. 3 . At method segment M 1 , global workload manager GM characterizes virtual machines, e.g., V 11 -V 22 , classifying them either as either “clustered” or as “non-clustered”. Thus, in the pre-failure configuration shown in  FIG. 1 , virtual machines V 11  and V 21  are “clustered”, while virtual machines V 12  and V 22  are “unclustered”. 
   At time T 2 , system  10  fails. The failure is detected shortly after by global workload manager GM at method segment M 2 . At method segment M 3 , global workload manager GM determines if the resources available on system  20  are sufficient to run clustered virtual machine V 11 . If the resources are insufficient, then steps are taken before virtual machine V 11  migrates to system  20 . Unclustered virtual machine V 22  is “checkpointed” at method segment M 4 . In other words, its state is saved and its operation is terminated at method segment M 4 . 
   At method segment M 5 , virtual machine V 11  is migrated to system  20 ; i.e., a backup instance of virtual machine V 11  is launched on system  20 . Finally, resources are allocated to virtual machine V 11  at method segment M 6 . Since virtual machine V 22  has been terminated, this includes reallocating resources formerly applied to virtual machine V 22  to the migrated instance of virtual machine V 11 . This is the configuration indicated at the lower portion of  FIG. 1 . 
   Method ME 1  provides for resuming operation of the unclustered virtual machines. At method segment M 1 , clusters are defined, effectively distinguishing between clustered virtual machines and unclustered virtual machines. At method segment M 2 , a failure affecting a clustered virtual machine V 11  is detected. In accordance with its clustered status, the impacted virtual machine is to be migrated to a target system  20 . 
   At method segment M 3 , a determination is made whether or not the available resources on the target system  20  are sufficient to meet the management objectives for the migrating virtual machines. If at method segment M 3 , it is determined the sources on target system  20  are insufficient for the migrating virtual machine, an unclustered virtual machine V 22  running on the target system is checkpointed. Then, the migration of the clustered virtual machine V 11  is effected at method segment M 5 . 
   If at method segment M 3  it is determined there are sufficient resources on system  20  for running virtual machine V 11  without terminating an unclustered virtual machine on the target system, method segment M 4  is skipped. Virtual machine V 22  is allowed to continue running. Virtual machine V 11  is migrated to system  20  at method segment M 5 . The necessary available resources are allocated to virtual machine V 11  at method segment M 6 . Only virtual machine V 11  will be migrated to system  30  at method segment M 7 . 
   At method segment M 7 , global workload manager GM migrates unclustered virtual machines to system  30 , as indicated in  FIG. 2 . Since workload V 22  was checkpointed, it can resume operation from the checkpointed state. Workload V 11  may be able to resume operation, but with some loss of data. Of course, in alternative instances of method ME 1 , either or both unclustered workloads might not be migrated. Instead, they can wait for repair for resumption. 
   Method segment M 7  can also provide for migrating, as indicated in  FIG. 2 , unclustered virtual machine V 12  that was running on failed system  10 . By periodically checkpointing unclustered virtual machines, a failed unclustered virtual machine can resume operation from the last checkpointed state. 
   At method segment M 8 , system  10  can be repaired. The repair can involve replacement with the same or upgraded or other spare parts. Since the hardware has changed since time T 3  and T 4 , the previous configuration is presumably no longer optimal. Accordingly, a reallocation of resources can be implemented at method segment M 9 . In some cases, this will result in a return to the configuration of time T 1  (top of  FIG. 1 ). However, hardware changes or changes in workload priorities may result in a different configuration of workloads. Alternatively, the repair need not be followed immediately by a reconfiguration. 
   The invention provides for many alternatives to the illustrated embodiment. Clusters can be formed between partitions of a single computer system (defined by a common housing), or between separate systems, which may be collocated or remotely located relative to each other. Any number of systems or partitions can be involved in a cluster, and a system can be involved in any number of clusters. Virtual machines are typically assigned to single clusters, although the assignment to plural clusters is provided for. Any number of virtual machines can be assigned to a cluster; one or more virtual machines on a system can be assigned to the same cluster. These and other modification to and variations upon the illustrated embodiment are provided for by the present invention, the scope of which is defined by the following claims.