# US 10,375,169 B1 · System and method for automatically triggering the live migration of cloud services and automatically performing the triggered migration

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

- Number: US 10,375,169 B1
- Document ID: US10375169B1
- Status: Granted
- Kind: B1
- Application number: 15/604,552
- Filed: 2017-05-24
- Granted: 2019-08-06
- Earliest claimed: 2017-05-24
- Assignees: The United States of America as represented by the Secretary of the Navy
- Applicants: The United States of America AS Represented By the Secretary of the Navy
- Inventors: Mamadou H. Diallo; Michael A. August; Megan E. Kline; Scott M. Slayback; Roger A. Hallman
- Web page: https://patentgrep.com/patent/US10375169B1

## CPC

- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F 11/0751: {Error or fault detection not based on redundancy (power supply failures G06F1/30; network fault management H04L41/06)}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1484: {involving virtual machines}
- G06F 11/2023: {Failover techniques}
- G06F 11/203: {using migration}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3409: {for performance assessment}
- H04L 63/1425: {Traffic logging, e.g. anomaly detection}
- H04L 67/1034: Reaction to server failures by a load balancer
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 2201/81: Threshold
- G06F 2201/815: Virtual
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method maximize the availability of cloud services in the event of a disruption to one or more cloud servers by automatically triggering the live migration of selected cloud services and automatically performing the triggered migration of such services. The operational state of virtual machines operating on a cloud server and the services that are associated with the virtual machines is monitored. Different techniques are used for deciding when to migrate cloud services based on the automatic detection of anomalies, for deciding what cloud services to migrate so as to maximize the availability of high priority services during migration under time and network bandwidth constraints, and for deciding where to migrate the selected cloud services based on a determination of the best location for migration.

## Claims

### Claim 1

A method comprising the steps of:
providing, by a cloud server system, a plurality of cloud services through processes running over a set of virtual machines hosted on the cloud server system;
monitoring, by a client computer system, at least one monitored virtual machine, wherein the at least one monitored virtual machine is among the set of virtual machines operating on the cloud server system and the step of monitoring includes at least retrieving, by the client computer system, status data related to an operation of the monitored virtual machine from the cloud server system;
detecting, by the client computer system, an anomaly indicative that the cloud server system is facing a disruption, wherein the step of detecting is performed using status data retrieved from the cloud server system; and
in the event an anomaly is detected, selecting, by the client computer system, a set of selected cloud services to be migrated, wherein said set of selected cloud services is among the set of cloud services operating on the cloud server system and the step of selecting includes at least associating a priority value with each of a plurality of candidate cloud services in the set of cloud services and weighing a migration memory cost for each of a plurality of candidate virtual machines such that the priority value for the set of selected cloud services, collectively, is maximized while the migration memory cost for the set of selected virtual machines, collectively, does not exceed a given threshold.

### Claim 2 (depends on 1)

The method of claim 1 further comprising the step of target selecting, by the client computer system, at least one destination host for the set of selected cloud services to be migrated to, wherein the step of target selecting is performed using status data retrieved from the cloud server system.

### Claim 3 (depends on 2)

The method of claim 2 further comprising the step of triggering, by the client computer system, the migration of the set of selected cloud services, wherein the step of triggering includes transmitting data related to the set of selected cloud services and the destination host to the cloud server system and commanding the cloud server system to begin migrating the set of selected cloud services to the destination host.

### Claim 4 (depends on 1)

The method of claim 1 further comprising the step of assigning, by the client computer system, a priority level for at least two of the plurality of cloud services.

### Claim 5 (depends on 4)

The method of claim 4, wherein the priority level assigned for the at least two of the plurality of cloud services is received from an input on a user interface on the client computer system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the step of selecting employs a greedy selection algorithm defined in a Set-Union Knapsack Problem to select the set of selected cloud services to be migrated.

### Claim 7 (depends on 1)

The method of claim 1, wherein said set of selected cloud services are run on a threatened set of virtual machines which is among the set of virtual machines operating on the cloud server system and said threatened set of virtual machines require physical migration to a discrete second cloud server system.

### Claim 8

A method comprising the steps of:
providing, by a cloud server system, a plurality of cloud services through processes running over a set of virtual machines hosted on the cloud server system;
monitoring, by a client computer system, at least one monitored virtual machine, wherein the at least one monitored virtual machine is among the set of virtual machines operating on the cloud server system and the step of monitoring includes at least retrieving, by the client computer system, status data related to an operation of the monitored virtual machine from the cloud server system;
assigning, by the client computer system, a priority level for at least two of the plurality of cloud services;
detecting, by the client computer system, an anomaly indicative that the cloud server system is facing a disruption, wherein the step of detecting is performed using status data retrieved from the cloud server system;
in the event an anomaly is detected, selecting, by the client computer system, a set of selected cloud services to be migrated, wherein said set of selected cloud services is among the set of cloud services operating on the cloud server system and the step of selecting includes at least associating a priority value with each of a plurality of candidate cloud services in the set of cloud services and weighing a migration memory cost for each of a plurality of candidate virtual machines such that the priority value for the set of selected cloud services, collectively, is maximized while the migration memory cost for the set of selected virtual machines, collectively, does not exceed a given threshold; and
target selecting, by the client computer system, a destination host for the set of selected cloud services to be migrated to, wherein the step of target selecting is performed using status data retrieved from the cloud server system.

### Claim 9 (depends on 8)

The method of claim 8 further comprising the step of triggering, by the client computer system, the migration of the set of selected cloud services, wherein the step of triggering includes transmitting data related to the set of selected cloud services and the destination host to the cloud server system and commanding the cloud server system to begin migrating the set of selected cloud services to the destination host.

### Claim 10 (depends on 8)

The method of claim 8, wherein the priority level assigned for the at least two of the plurality of cloud services is received from an input on a user interface on the client computer system.

### Claim 11

A system comprising:
a cloud server to provide a plurality of cloud services through processes running over a set of virtual machines hosted on the cloud server such that each of the plurality of cloud services is associated with at least one of the virtual machines in the set of virtual machines;
a server virtual machine (VM) monitor integral with said cloud server to monitor each virtual machine in the set of virtual machines hosted on the cloud server system;
a client device communicatively coupled to said cloud server over a computer network;
a client virtual machine (VM) monitor integral with said client device to collect and store data relating to each virtual machine in the set of virtual machines hosted on the cloud server;
an anomaly detector integral with said client device to use data collected and stored by the client virtual machine (VM) monitor to determine when the cloud server is facing a disruption;
a cloud service selector integral with said client device to select a set of selected cloud services to be migrated by at least associating a priority value with each of a plurality of candidate cloud services in the set of cloud services and weighing a migration memory cost for each of a plurality of candidate virtual machines such that the priority value for across the set of selected cloud services, collectively, is maximized while the migration memory cost for the set of selected virtual machines, collectively, does not exceed a given threshold, wherein said set of selected virtual machines is among the set of virtual machines hosted on the cloud server.

### Claim 12 (depends on 11)

The system of claim 11 further comprising a target selector integral with said client device to determine a destination host for the set of selected cloud services to be migrated to using status data retrieved from the cloud server system.

### Claim 13 (depends on 12)

The system of claim 12 further comprising a migration trigger integral with said client device to trigger the migration of the set of selected cloud services by transmitting data related to the set of selected cloud services and the destination host to the cloud server and commanding the cloud server to begin migrating the set of selected cloud services to the destination host.

### Claim 14 (depends on 13)

The system of claim 13 further comprising a VM migrator integral with said cloud server to initiate the migration of the set of selected cloud services to the destination host in response to a command from the migration trigger.

### Claim 15 (depends on 11)

The system of claim 11, wherein the client VM monitor collect data relating to each virtual machine in the set of virtual machines hosted on the cloud server system by retrieving the data from the server VM monitor.

### Claim 16 (depends on 11)

The system of claim 11, wherein the anomaly detector determine when the cloud server system is facing a disruption through user input.

### Claim 17 (depends on 11)

The system of claim 11, wherein the client VM monitor provide a graphical user interface which visualizes collected data and enables the receipt of user input.

### Claim 18 (depends on 11)

The system of claim 11, wherein the client VM monitor collect and store data relating to each virtual machine in the set of virtual machines hosted on the cloud server that includes the status of any of the virtual machines, the status of cloud services running on any of the virtual machines, and, if any of the virtual machines is on, the CPU, memory, disk and network utilization.

### Claim 19 (depends on 11)

The system of claim 11, wherein the anomaly detector use data collected and stored by the client VM monitor and perform behavior analysis to detect anomalies so as to determine when the cloud server is facing disruption.

### Claim 20 (depends on 11)

The system of claim 11, wherein the cloud service selector employs a greedy selection algorithm defined in a Set-Union Knapsack Problem to select the set of selected cloud services to be migrated.
