# US 2017/0286146 A1 · Virtual machine placement

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

- Number: US 2017/0286146 A1
- Document ID: US20170286146A1
- Status: Published application
- Kind: A1
- Application number: 15/507,651
- Filed: 2015-01-27
- Published: 2017-10-05
- Earliest claimed: 2015-01-27
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Douglas L. Voigt; Scott Grumm
- Web page: https://patentgrep.com/patent/US20170286146A1

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 1/266: {Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips}
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/48: Program initiating; Program switching, e.g. by interrupt
- G06F 9/4806: {Task transfer initiation or dispatching}
- G06F 9/4843: {by program, e.g. task dispatcher, supervisor, operating system}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/50: Allocation of resources, e.g. of the central processing unit [CPU]
- G06F 9/5005: {to service a request}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/505: {considering the load}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5088: {involving task migration}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Example implementations relate to defining a first placement plan to place virtual storage appliance virtual machines on servers and defining a second placement plan to place an application virtual machine on the servers. The first placement plan can place each virtual storage appliance virtual machine on a server that is connected to a storage asset used by a respective VSA virtual machine.

## Claims

### Claim 1

A method comprising:
defining a first placement plan by placing each virtual storage appliance (VSA) virtual machine of a plurality of VSA virtual machines on a server, of a plurality of servers, that is connected to a storage asset used by a respective VSA virtual machine to support a storage cluster, where VSA virtual machines supporting a same storage cluster are each placed on different servers of the plurality of servers, and the plurality of VSA virtual machines are placed on servers with virtual machines before servers without virtual machines;
defining a second placement plan by placing an application virtual machine on a server, of the plurality of servers, having available utilization capacity, and by placing the application virtual machine on servers with virtual machines before servers without virtual machines; and
deploying the plurality of VSA virtual machines and the application virtual machine according to the first placement plan and the second placement plan, respectively.

### Claim 2 (depends on 1)

The method of claim 1, wherein the defining the first placement plan is performed prior to the defining the second placement plan.

### Claim 3 (depends on 1)

The method of claim 1, further comprising reducing a power usage of a first subset of the plurality of servers,
wherein the deploying includes migrating at least some of the plurality of VSA virtual machines or the application virtual machine from the first subset of the plurality of servers to a second subset of the plurality of servers.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
determining a server utilization of each VSA virtual machines;
determining a server utilization of the application virtual machine; and
determining a maximum utilization capacity of each server of the plurality of servers.

### Claim 5 (depends on 4)

The method of claim 4, wherein the defining the first placement plan and the defining the second placement plan each include a rule that limits a total server utilization of each server to less than or equal to a maximum utilization capacity of the respective server.

### Claim 6 (depends on 1)

The method of claim 1, wherein each server of the plurality of servers has a maximum storage cluster utilization,
the server utilization of each of the VSA virtual machines supporting the same storage cluster varies inversely with a number of the VSA virtual machines supporting the same storage cluster, and
the number of the VSA virtual machines supporting the same storage cluster is adjusted between a minimum for fault tolerance and a maximum by the defining the first placement plan so that a respective maximum storage cluster utilization is satisfied for at least one server of the plurality of servers.

### Claim 7 (depends on 1)

The method of claim 1, wherein the defining the first placement plan places a VSA virtual machine that uses a storage asset connected to a single server on the single server prior to placing a VSA virtual machine that uses a storage asset connected to multiple servers.

### Claim 8 (depends on 1)

The method of claim 1, wherein the application virtual machine is one of a plurality of application virtual machines,
the defining the second placement plan places each application virtual machine of the plurality of application virtual machines in turn by decreasing order of server utilizations of the plurality of application virtual machines, and
the defining the second placement plan places each application virtual machine on a server associated with a storage cluster used by a respective application virtual machine if the server associated with the storage cluster used by the respective application virtual machine has available utilization capacity for the respective application virtual machine, or else places the respective application virtual machine on a server having a highest utilization capacity among the plurality of servers and has at least one other virtual machine.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
monitoring for changes of the plurality of VSA virtual machines or the application virtual machine,
redefining the first placement plan or the second placement plan based on the changes, and
deploying the plurality of VSA virtual machines and the application virtual machine according to the redefined first placement plan or the redefined second placement plan.

### Claim 10

An apparatus comprising:
a planner module to:
define a first placement plan that includes placement of:
each virtual storage appliance (VSA) virtual machine of a plurality of VSA virtual machines on a server, of a plurality of servers, that is connected to a storage asset, of a plurality of storage assets, used by a respective VSA virtual machine,
VSA virtual machines supporting a same storage cluster on different servers, and
each VSA virtual machine in favor of servers with virtual machines over servers without virtual machines,
define a second placement plan that includes placement of:
each application virtual machine of a plurality of application virtual machines on the plurality of servers, in turn by decreasing order of server utilizations of the application virtual machines, and
each application virtual machine on servers with virtual machines in favor of servers without virtual machines, and
apply server utilization rules to the first placement plan and the second placement plan; and
a deployment module to deploy the plurality of VSA virtual machines and the plurality of application virtual machines on the servers according to the first placement plan and the second placement plan, respectively.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the planner module defines the second placement plan to place each of the application virtual machines on a server associated with a storage cluster used by a respective application virtual machine if the server associated with the storage cluster used by the respective application virtual machine has available utilization capacity for the respective application virtual machine, or else to place the respective application virtual machine on a server having a highest utilization capacity among the plurality of servers and has at least one other virtual machine.

### Claim 12 (depends on 10)

The apparatus of claim 10, further comprising a utilization determination module to:
determine a server utilization of each VSA virtual machine;
determine a server utilization of each application virtual machine;
determine a maximum utilization capacity of each server of the plurality of servers; and
normalize the maximum utilization capacity of each of the plurality of servers, the server utilization of each of the plurality of VSA virtual machines, and the server utilization of the appliance virtual machine by a lowest maximum utilization capacity of the plurality of servers,
wherein the server utilization rules are based on the normalized maximum utilization capacity of each of the plurality of servers and a maximum storage cluster utilization of each of the plurality of servers.

### Claim 13 (depends on 10)

The apparatus of claim 10, further comprising:
a power reduction module to reduce a power usage of a subset of servers; and
a monitor module to:
monitor for a change of the plurality of VSA virtual machines, the plurality of application virtual machines, or the plurality of servers, and
redefine the first placement plan or the second placement plan based on the change.

### Claim 14

A non-transitory machine readable medium encoded storing instructions that, when executed by a processor of a processor-based system, cause the processor-based system to:
define one placement plan that places each virtual storage appliance (VSA) virtual machine of a plurality of VSA virtual machines on a server that is connected to a storage asset used by a respective VSA virtual machine, that places each VSA virtual machines associated with a same storage cluster on different servers, and that places VSA virtual machines in favor of servers with at least one virtual machine over servers without virtual machines; and
define another placement plan that places each of a plurality of application virtual machines on a server associated with a storage cluster used by a respective application virtual machine if the server associated with the storage cluster has available utilization capacity, or else places the application virtual machines in turn by decreasing order of respective server utilizations on a server having available utilization capacity.

### Claim 15 (depends on 14)

The non-transitory machine readable medium of claim 14, further comprising instructions that, when executed by the processor, cause the processor-based system to:
deploy the plurality of VSA virtual machines and the plurality of application virtual machines according to the one placement plan and the another placement plan, respectively;
detect changes to the plurality of VSA virtual machines or the plurality of application virtual machines; and
define at least one redefined placement plan in response to the changes.
