# US 8,572,138 B2 · Distributed computing system having autonomic deployment of virtual machine disk images

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,572,138 B2
- Document ID: US8572138B2
- Status: Granted
- Kind: B2
- Application number: 11/694,483
- Filed: 2007-03-30
- Published: 2007-10-04
- Granted: 2013-10-29
- Earliest claimed: 2006-03-30
- Assignees: CA, Inc.
- Applicants: Jagane Sundar; Sanjay Radia; David A. Henseler
- Inventors: Jagane Sundar; Sanjay Radia; David A. Henseler
- Web page: https://patentgrep.com/patent/US8572138B2

## CPC

- G06F 11/2025: {using centralised failover control functionality}
- G06F 8/60: Software deployment
- G06F 11/2051: {in regular structures}
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1482: using middleware or operating system [OS] functionalities
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

One or more control nodes provide for the efficient and automated allocation and management of computing functions and resources within the distributed computing system. The distributed computing system includes a software image repository storing: (i) one or more image instances of a virtual machine manager that is executable on the application nodes, wherein when executed on the applications nodes, the image instances of the virtual machine manager provide one or more virtual machines, and (ii) one or more image instances of one or more software applications that are executable on the virtual machines. The distributed computing system also includes a control node that comprises an automation infrastructure to provide autonomic deployment of the image instances of the virtual machine manager on the application nodes and to provide autonomic deployment of the image instances of the software applications on the virtual machines.

## Claims

### Claim 1

A distributed computing system comprising:
a software image repository comprising non-transitory, computer-readable media operable to store: (i) a plurality of image instances of a virtual machine manager that is executable on a plurality of application nodes, wherein when executed on the applications nodes, the image instances of the virtual machine manager provide a plurality of virtual machines, each of the plurality of virtual machine operable to provide an environment that emulates a computer platform, and (ii) a plurality of image instances of a plurality of software applications that are executable on the plurality of virtual machines; and
a control node that comprises an automation infrastructure to provide autonomic deployment of the plurality of image instances of the virtual machine manager on the application nodes by causing the plurality of image instances of the virtual machine manager to be copied from the software image repository to the application nodes and to provide autonomic deployment of the plurality of image instances of the software applications on the virtual machines by causing the plurality of image instances of the software applications to be copied from the software image repository to the application nodes.

### Claim 2 (depends on 1)

The distributed computing system of claim 1, wherein the image instances of the plurality of software applications comprise virtual disk image files.

### Claim 3 (depends on 1)

The distributed computing system of claim 1, wherein a first image instance of the plurality of image instances of the plurality of software applications comprises an operating system.

### Claim 4 (depends on 1)

The distributed computing system of claim 1, wherein a first image instance of the plurality of image instances of the plurality of software applications comprises a server application.

### Claim 5 (depends on 1)

The distributed computing system of claim 1, wherein a first one of the virtual machines provides an environment that emulates an x86 platform.

### Claim 6 (depends on 1)

The distributed computing system of claim 1, wherein the automation infrastructure captures a first image instance of the image instances of the virtual machine manager from a first application node of the plurality of application nodes.

### Claim 7 (depends on 6)

The distributed computing system of claim 6, wherein the first application node executes the virtual machine manager.

### Claim 8 (depends on 1)

The distributed computing system of claim 1, wherein the control node maintains the plurality of image instances of the virtual machine manager and the plurality of image instances of the plurality of software applications as persistent or non-persistent based on a configuration.

### Claim 9 (depends on 1)

The distributed computing system of claim 1, wherein the control node further comprises one or more rule engines that provide autonomic deployment of the software applications to the virtual machines in accordance with a set of one or more rules.

### Claim 10 (depends on 9)

The distributed computing system of claim 9, wherein the one or more rule engines are forward-chaining rule engines.

### Claim 11 (depends on 9)

The distributed computing system of claim 9, wherein the automation infrastructure automatically updates the one or more rules engines to autonomically control the deployment of the software applications to the application nodes in accordance with a current state of an application matrix.

### Claim 12 (depends on 1)

The distributed computing system of claim 1, wherein the control node further comprises an application matrix that includes parameters for controlling the deployment, undeployment, and execution of the software applications to the virtual machines within the distributed computing system.

### Claim 13 (depends on 12)

The distributed computing system of claim 12, further comprising an application governor that accesses the application matrix to communicate instructions from the automation infrastructure to the software applications.

### Claim 14 (depends on 9)

The distributed computing system of claim 9, wherein the automation infrastructure automatically updates the one or more rules engines to monitor the execution of the software applications when deployed to the application nodes in accordance with a current state of the application matrix.

### Claim 15 (depends on 1)

The distributed computing system of claim 1, wherein the automation subsystem includes a rule compiler that compiles rules into one or more discrimination networks.

### Claim 16 (depends on 1)

The distributed computing system of claim 1, wherein the control node further comprises:
a monitoring subsystem that collects status data from the application nodes and communicates the status data to the automation subsystem, wherein the status data represents an actual state for the application nodes; and
a business logic tier that provides expected state data to the automation subsystem, wherein the expected state data represents an expected state for the application nodes,
wherein one or more rule engines analyze the status data from the monitoring subsystem and apply a set of rules to produce action requests to the business logic tier to control the application nodes to reduce any difference between the actual state and the expected state.

### Claim 17 (depends on 1)

The distributed computing system of claim 1, wherein the application nodes are organized into tiers, and wherein status data is collected based on the tiers.

### Claim 18 (depends on 1)

The distributed computing system of claim 1, further comprising:
a database storing data that defines a model for a hierarchical organization of the distributed computing system, wherein the model specifies a fabric having one or more domains, and wherein each domain has at least one tier that includes at least one of the application nodes,
wherein one or more rule engines automatically produce action requests to control the deployment of the software applications in accordance with the hierarchical organization of the distributed computing system defined by the model.

### Claim 19

A method comprising:
storing a plurality of image instances of a virtual machine manager that is executable on a plurality of application nodes in a distributed computing system, wherein the image instances of the virtual machine manager provide a plurality of virtual machines, each virtual machine operable to provide an environment that emulates a computer platform;
storing a plurality of image instances of a plurality of software applications that are executable on the plurality of virtual machines;
executing a rules engine to perform operations to autonomically deploy the image instances of the virtual machine manager on the application nodes by causing the image instances of the virtual machine manager to be copied to the application nodes; and
executing the rules engine to perform operations to autonomically deploy the image instances of the software applications on the virtual machines by causing the image instances of the software applications to be copied to the application nodes.

### Claim 20 (depends on 19)

The method of claim 19, wherein storing the image instances of the plurality of software applications comprises storing virtual disk image files.

### Claim 21 (depends on 19)

The method of claim 19, wherein a first image instance of the plurality of image instances of the plurality of software applications comprises an operating system.

### Claim 22 (depends on 19)

The method of claim 19,
further comprising generating an application matrix that specifies data for controlling the deployment of the software applications within the distributed computing system; and
wherein performing operations to provide autonomic control comprises providing autonomic control over the deployment, undeployment, and execution of the software applications on the virtual machines within the distributed computing system in accordance with parameters of the application matrix.

### Claim 23 (depends on 19)

The method of claim 19, wherein performing operations to autonomically deploy the image instances of the software applications on the virtual machines comprises:
receiving status data for the distributed computing system, wherein the status data represents an actual state of the application nodes;
processing the status data with rules in a set of rule engines to determine operations for reducing any difference between an expected state and the actual state of the application nodes; and
performing the operations to provide autonomic control over the deployment of the software applications on the virtual machines within the distributed computing system in accordance with the rules.

### Claim 24 (depends on 19)

The method of claim 19, further comprising accessing parameters of an application matrix and determining one or more rules for use in autonomically controlling the deployment of the software applications on the virtual machines.

### Claim 25 (depends on 24)

The method of claim 24, further comprising processing the one or more rules with a plurality of forward-chaining rule engines that compile the one or more rules into one or more discrimination networks.

### Claim 26

A non-transitory, computer-readable medium comprising instructions stored thereon, that when executed by a programmable processor:
store a plurality of image instances of a virtual machine manager that is executable on a plurality of application nodes in a distributed computing system, wherein the image instances of the virtual machine manager provide a plurality of virtual machines, each virtual machine operable to provide an environment that emulates a computer platform;
store a plurality of image instances of a plurality of software applications that are executable on the plurality of virtual machines;
perform operations to autonomically deploy the image instances of the virtual machine manager on the application nodes by causing the image instances of the virtual machine manager to be copied to the application nodes; and
perform operations to autonomically deploy the image instances of the software applications on the virtual machines by causing the image instances of the software applications to be copied to the application nodes.
