Managing Instances

Instances are virtual machines that run on the Oxide platform.

Query or Delete Existing Instances

Instance details may be inquired by instance id, name, or project using the Console, API, and CLI. Because instance names are unique within the scope of a project, when querying by instance name, the project name has to be specified in the query as well.

Instances no longer in use can be deleted once they are in the stopped state. Terminating a VM does not result in deletion of the disks associated with it. Its disks are simply detached and remain intact.

Start, Stop, Reboot Instances

Instances can be started, stopped, or rebooted via Oxide Console, API, or CLI commands. Stop and Reboot are meant for situations when the instances can only be acted on outside the guest operating system or when graceful shutdown is not required.

Unlike invoking a shutdown from within the instance, the stop command issues a halt request to the guest operating system. The process does not coordinate with software running in the instance.

The reboot command resets the guest by pausing all devices, resetting them to their cold-boot states, and then resuming the devices. This also does not result in a graceful shutdown and restart.

Stopped instances retain their IP addresses but no longer have compute resources (vCPU, memory) allocated to them. To maximize the use of compute resources allocated to your silo, you may choose to shut down idle instances to free up the capacity for other users in the silo.

Attach or Detach Disks

Disks can be added to or removed from an existing instance through the Console or API. Instances must be in the stopped state before a disk can be attached or detached.

Detached disks continue to exist until they are explicitly deleted. They can be re-attached to the same instance or other instances.

To prevent data loss when detaching a disk, some intervention may be required in the guest operating system prior to the action (e.g. stop writes to the disk and unmount it).

Add, Modify, Remove Network Interfaces

The network interfaces of an existing instance can be modified through the Console or API.

There are several restrictions on network interface assignments and changes:

  • The instance must be in the stopped state for any network interface changes.

  • Removal of a primary NIC is not allowed.

  • Multiple NIC from the same subnet is not allowed.

  • The first four IP addresses and last IP address in a subnet are reserved. They cannot be assigned to an instance.

  • Any external IP address assigned to the instance is attached to the primary NIC. It can only be removed along with the NIC once another NIC is set as primary.

Attach or Detach External IP Addresses

The external IP addresses assigned to an instance can be modified through the API.

  • The instance must be in the started or stopped state.

  • An instance may have at most one ephemeral IP, and at most 32 total external IPs.

Removing an external IP will block any existing traffic flows targeting that address, but will not affect other assigned IP addresses. Adding a new address will have no impact on existing traffic.

The semantics of ephemeral and floating IPs are listed in 'Configuring Guest Networking', and examples are provided as part of 'Managing Floating IPs'.

Last updated