3.10. Managing Virtual Machines

3.10.1. vinfra service compute server create

Create a new compute server:

usage: vinfra service compute server create [--description <description>]
                                            [--metadata <metadata>]
                                            [--user-data <user-data>]
                                            [--key-name <key-name>]
                                            [--config-drive] [--count <count>]
                                            --network <id=id[,key=value,...]>
                                            --volume <source=source[,key=value,...]>
                                            --flavor <flavor> <server-name>
--description <description>
Server description
--metadata <metadata>
Server metadata
--user-data <user-data>
User data file
--key-name <key-name>
Key pair to inject
--config-drive
Use an ephemeral drive
--count <count>
If count is specified and greater than 1, the name argument is treated as a naming pattern.
--network <id=id[,key=value,...]>

Create a compute server with a specified network. Specify this option multiple times to create multiple networks.

  • id: attach network interface to a specified network (ID or name);
  • comma-separated key=value pairs with keys (optional):
    • mac: MAC address for network interface;
    • fixed-ip: fixed IP address for network interface;
    • spoofing-protection: enable or disable spoofing protection for network interface (on or off).
--volume <source=source[,key=value,...]>

Create a compute server with a specified volume. Specify this option multiple times to create multiple volumes.

  • source: source type (volume, image, snapshot, or blank);
  • comma-separated key=value pairs with keys (optional):
    • id: resource ID or name for the specified source type (required for source types volume, image, and snapshot);
    • size: block device size, in gigabytes (required for source types image and blank);
    • boot-index: block device boot index (required for multiple volumes with source type volume);
    • bus: block device controller type (ide, usb, virtio, scsi, or sata);
    • type: block device type (disk or cdrom);
    • rm: remove block device on compute server termination (yes or no) ;
    • storage-policy: block device storage policy.
--flavor <flavor>
Flavor ID or name
<server-name>
A new name for the compute server

Example:

# vinfra service compute server create myvm \
--network id=private,fixed-ip=192.168.0.100 \
--volume source=image,id=cirros,size=1 --flavor tiny
+--------------+--------------------------------------+
| Field        | Value                                |
+--------------+--------------------------------------+
| config_drive |                                      |
| created      | 2018-09-12T13:25:02Z                 |
| description  |                                      |
| flavor       | 100                                  |
| host         |                                      |
| id           | f6656fb5-e165-4afa-a119-45882acc6af1 |
| key_name     |                                      |
| metadata     | {}                                   |
| name         | myvm                                 |
| networks     | []                                   |
| power_state  | NOSTATE                              |
| project_id   | 72a5db3a033c403a86756021e601ef34     |
| status       | BUILD                                |
| task_state   | scheduling                           |
| updated      | 2018-09-12T13:25:03Z                 |
| user_data    |                                      |
| volumes      | []                                   |
+--------------+--------------------------------------+

This command creates a virtual machine `myvm based on the default Cirros image and the flavor tiny and connects it to the network private with the fixed IP address 192.168.128.100.

3.10.2. vinfra service compute server list

List compute servers:

usage: vinfra service compute server list

Example:

# vinfra service compute server list
+--------------------------------------+------+--------+-----------------------------------+
| id                                   | name | status | host                              |
+--------------------------------------+------+--------+-----------------------------------+
| 8cd29296-8bee-4efb-828d-0e522d816c6e | myvm | ACTIVE | stor-4.example.com.vstoragedomain |
+--------------------------------------+------+--------+-----------------------------------+

This command lists all virtual machines in the compute cluster.

3.10.3. vinfra service compute server show

Display compute server details:

usage: vinfra service compute server show <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server show myvm
+--------------+--------------------------------------------+
| Field        | Value                                      |
+--------------+--------------------------------------------+
| config_drive |                                            |
| created      | 2018-09-12T13:30:02Z                       |
| description  |                                            |
| flavor       | 100                                        |
| host         | stor-4.example.com.vstoragedomain          |
| id           | 8cd29296-8bee-4efb-828d-0e522d816c6e       |
| key_name     |                                            |
| metadata     | {}                                         |
| name         | myvm                                       |
| networks     | - id: 1bf2c9da-e324-49f0-8d41-20410615f905 |
|              |   ipam_enabled: true                       |
|              |   ips:                                     |
|              |   - 192.168.128.100                        |
|              |   mac_addr: fa:16:3e:54:04:f0              |
|              |   name: private                            |
|              |   spoofing_protection: false               |
| power_state  | RUNNING                                    |
| project_id   | 72a5db3a033c403a86756021e601ef34           |
| status       | ACTIVE                                     |
| task_state   |                                            |
| updated      | 2018-09-12T13:30:53Z                       |
| user_data    |                                            |
| volumes      | - 30092d44-3bdd-46d8-a360-a5bc6434cbf8     |
+--------------+--------------------------------------------+

This command shows the details of the virtual machine myvm.

3.10.4. vinfra service compute server stat

Display compute server statistics:

usage: vinfra service compute server stat <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server stat myvm
+----------+----------------------------------+
| Field    | Value                            |
+----------+----------------------------------+
| datetime | 2018-09-12T13:37:46.803999+00:00 |
| metrics  | block_capacity: 1073741824       |
|          | block_usage: 134549504           |
|          | cpu_usage: 0                     |
|          | mem_total: 536870912             |
|          | mem_usage: 130412544             |
|          | vcpus: 1                         |
+----------+----------------------------------+

This command shows the statistics for the virtual machine myvm.

3.10.5. vinfra service compute server iface attach

Attach a network to a compute server:

usage: vinfra service compute server iface attach [--mac <mac>] [--ip <ip-address>]
                                                  [--spoofing-protection {on,off}]
                                                  --server <server> --network <network>
--mac <mac>
MAC address
--ip <ip-address>
IP address
--spoofing-protection {on|off}
Enable spoofing protection for the network interface
--server <server>
Compute server ID or name
--network <network>
Network ID or name

Example:

# vinfra service compute server iface attach --network myprivnet --server myvm
+---------------+--------------------------------------+
| Field         | Value                                |
+---------------+--------------------------------------+
| fixed_ip      | 192.168.129.8                        |
| id            | 690ed3f2-2301-40e2-879a-126db2ecb57b |
| mac_address   | fa:16:3e:54:59:08                    |
| network_id    | 0710372e-2bdf-4dfe-b413-eb763da37e68 |
| spoofing<...> | False                                |
+---------------+--------------------------------------+

This command attaches the private network myprivnet to the virtual machine myvm.

3.10.6. vinfra service compute server iface list

List compute server networks:

usage: vinfra service compute server iface list --server <server>
--server <server>
Compute server ID or name

Example:

# vinfra service compute server iface list --server myvm
+----------------+----------------+-------------------+-----------------+
| id             | network_id     | mac_address       | fixed_ip        |
+----------------+----------------+-------------------+-----------------+
| 690ed3f2-<...> | 0710372e-<...> | fa:16:3e:54:59:08 | 192.168.129.8   |
| a5b13bf3-<...> | 1bf2c9da-<...> | fa:16:3e:b9:33:bb | 192.168.128.100 |
+----------------+----------------+-------------------+-----------------+

This command lists the virtual networks that the virtual machine myvm is attached to. It also shows VM’s IP address in each network.

3.10.7. vinfra service compute server iface detach

Detach a network interface from a compute server:

usage: vinfra service compute server iface detach --server <server> <interface>
--server <server>
Compute server ID or name
<interface>
Network interface ID

Example:

# vinfra service compute server iface detach 471e37fd-13ae-4b8f-b70c-90ac02cc4386 \
--server 6c80b07f-da46-4a8a-89a4-eecb8faceb27
Operation successful

This command detaches the network interface with the ID 471e37fd-13ae-4b8f-b70c-90ac02cc4386 from the VM with the ID 6c80b07f-da46-4a8a-89a4-eecb8faceb27.

3.10.8. vinfra service compute server log

Display compute server log:

usage: vinfra service compute server log <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server log myvm > myvm.log

This command prints the log of the virtual machine myvm to the file myvm.log.

3.10.9. vinfra service compute server migrate

Migrate a compute server to another host:

usage: vinfra service compute server migrate [--cold] [--node <node>] <server>
--cold
Perform cold migration. If not set, try to determine migration type automatically.
--node <node>
Destination node ID or hostname
<server>
Compute server ID or name

Example:

# vinfra service compute server migrate 6c80b07f-da46-4a8a-89a4-eecb8faceb27 \
--node e6255aed-d6e7-41b2-ba90-86164c1cd9a6
Operation successful

This command starts migration of the VM with the ID 6c80b07f-da46-4a8a-89a4-eecb8faceb27 to the compute node with the ID e6255aed-d6e7-41b2-ba90-86164c1cd9a6.

3.10.10. vinfra service compute server resize

Resize a compute server:

usage: vinfra service compute server resize --flavor <flavor> <server>
--flavor <flavor>
Apply flavor with ID or name
<server>
Compute server ID or name

Example:

# vinfra service compute server resize myvm --flavor small
Operation successful

This command changes the flavor of the virtual machine myvm to small.

3.10.11. vinfra service compute server start

Start a compute server:

usage: vinfra service compute server start <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server start myvm
Operation successful

This command starts the virtual machine myvm.

3.10.12. vinfra service compute server pause

Pause a compute server:

usage: vinfra service compute server pause <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server pause myvm

This command pauses the running virtual machine myvm.

3.10.13. vinfra service compute server unpause

Unpause a compute server:

usage: vinfra service compute server unpause <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server unpause myvm

This command unpauses the paused virtual machine myvm.

3.10.14. vinfra service compute server suspend

Suspend a compute server:

usage: vinfra service compute server suspend <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server suspend myvm
Operation successful

This command suspends the running virtual machine myvm.

3.10.15. vinfra service compute server resume

Resume a compute server:

usage: vinfra service compute server resume <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server resume myvm
Operation successful

This command resumes the suspended virtual machine myvm.

3.10.16. vinfra service compute server reboot

Reboot a compute server:

usage: vinfra service compute server reboot [--hard] <server>
--hard
Perform hard reboot
<server>
Compute server ID or name

Example:

# vinfra service compute server reboot myvm
Operation successful

This command reboots the virtual machine myvm.

3.10.17. vinfra service compute server reset-state

Reset compute server state:

usage: vinfra service compute server reset-state [--state-error] <server>
--state-error
Reset server to ‘ERROR’ state
<server>
Compute server ID or name

Example:

# vinfra service compute server reset-state myvm
Operation successful

This command resets the state of the virtual machine myvm.

3.10.18. vinfra service compute server stop

Shut down a compute server:

usage: vinfra service compute server stop [--hard] <server>
--hard
Power off a compute server
<server>
Compute server ID or name

Example:

# vinfra service compute server stop myvm
Operation successful

This command stops the virtual machine myvm.

3.10.19. vinfra service compute server evacuate

Evacuate a stopped compute server from a failed host:

usage: vinfra service compute server evacuate <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server evacuate ``myvm``
Operation successful

This command evacuates the stopped VM myvm from its node to another, healthy compute node.

3.10.20. vinfra service compute server delete

Delete a compute server:

usage: vinfra service compute server delete <server>
<server>
Compute server ID or name

Example:

# vinfra service compute server delete myvm
Operation successful

This command deletes the virtual machine myvm.