Dedicated Virtual Machine Hosts

The Oracle Cloud Infrastructure Compute service's dedicated virtual machine host feature gives you the ability to run compute virtual machine (VM) instances on dedicated servers that are a single tenant and not shared with other customers. This feature lets you meet compliance and regulatory requirements for isolation that prevent you from using shared infrastructure. You can also use this feature to meet node-based or host-based licensing requirements that require you to license an entire server.

Support and Limitations

Shapes and capacity: When you create a dedicated virtual machine host, you select a shape for the host. The shape determines how much capacity is available and what types of instances can be launched on the host. For information about the dedicated virtual machine host shapes, see Dedicated Virtual Machine Host Shapes. Note that there is a difference between the number listed for billed OCPUs compared to available OCPUs. This is because some OCPUs are reserved for virtual machine management.

When you launch an instance on a dedicated virtual machine host, you can choose any of the VM shapes that are supported for that host. For details about these shapes, see VM Shapes.

You can mix VM instances with different supported shapes on the same dedicated virtual machine host. The size of each instance might impact the maximum number of instances that you can place on the dedicated virtual machine host. For more information, see Optimizing Capacity on a Dedicated Virtual Machine Host.

Billing: You are billed for the dedicated virtual machine host as soon as you create it, but you are not billed for any of the individual VM instances you place on it. You will still be billed for image licensing costs if they apply to the image you are using for the VM instances.

Supported features: Most of the Compute features for VM instances are supported for instances running on dedicated virtual machine hosts. However, the following features are not supported:

  • Autoscaling
  • Capacity reservations
  • Instance configurations
  • Instance pools
  • Burstable instances
  • Reboot migration. You can use manual migration instead

Required IAM Policy

To use Oracle Cloud Infrastructure, you must be granted security access in a policy  by an administrator. This access is required whether you're using the Console or the REST API with an SDK, CLI, or other tool. If you get a message that you don’t have permission or are unauthorized, verify with your administrator what type of access you have and which compartment  to work in.

For administrators: The simplest policy to enable users to work with dedicated virtual machine hosts is listed in Let users manage Compute dedicated virtual machine hosts. It gives the specified group access to launch instances on dedicated virtual machine hosts and manage dedicated virtual machine hosts.

See Let users launch Compute instances on dedicated virtual machine hosts for an example of a policy that allows users to launch instances on dedicated virtual machine hosts without giving them full administrator access to dedicated virtual machine hosts.

Managing Dedicated Virtual Machine Hosts

Creating Dedicated Virtual Machine Hosts

You must create a dedicated virtual machine host before you can place any instances on it.

When creating a dedicated virtual machine host, you select an availability domain and fault domain to launch it in. All the VM instances that you place on the host will subsequently be created in this availability domain and fault domain.

You also select a compartment when you create the dedicated virtual machine host, but you can move the host to a new compartment later without impacting any of the instances placed on it. You can also create the instances in a different compartment than the dedicated virtual machine host, or move them to different compartments after they have been launched.

Using the Console

  1. Open the navigation menu and click Compute. Under Compute, click Dedicated Virtual Machine Hosts.
  2. Click Create Dedicated Virtual Machine Host.
  3. Select the compartment to create the dedicated virtual machine host in.
  4. Enter a name for the dedicated virtual machine host. It doesn't have to be unique, and you can change it later. Avoid entering confidential information.
  5. Select the Availability domain for the dedicated virtual machine host.
  6. In the Dedicated host shape section, select the shape to use for the dedicated virtual machine host. To see which VM shapes you can use to create instances on the host, click the down arrow in the row for a host shape.
  7. (Optional) If you want to configure the fault domain or add tags, click Show Advanced Options. Then enter the following information:

    • Fault domain: The fault domain for the dedicated virtual machine host.
    • Tags: Optionally, you can add tags. If you have permissions to create a resource, you also have permissions to add free-form tags to that resource. To add a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you are not sure whether you should add tags, skip this option (you can add tags later) or ask your administrator.
  8. Click Create.

Using the CLI

Open a command prompt and run:

oci compute dedicated-vm-host create --dedicated-vm-host-shape <shape_name> --wait-for-state ACTIVE --display-name <display_name> --availability-domain <availability_domain> --compartment-id <compartment_OCID>

<shape_name> is the shape for the dedicated virtual machine host.

It can take up to 15 minutes for the dedicated virtual machine host to be fully created. It must be in the ACTIVE state before you can launch an instance on it.

To query the current state of a dedicated virtual machine host using the CLI, run the following command:

oci compute dedicated-vm-host get --dedicated-vm-host-id <dedicatedVMhost_OCID>

Using the API

Use the CreateDedicatedVmHost operation.

Deleting Dedicated Virtual Machine Hosts

You can delete a dedicated virtual machine host after you terminate (delete) the instances that are placed on it.

How do I see which instances are placed on a dedicated virtual machine host?

In the Console: Go to the Details page for the dedicated virtual machine host. Then, under Resources, click Hosted Instances. Perform this step for each compartment in your tenancy that has instances running on the dedicated virtual machine host. To change the compartment for the Hosted Instances list, select a different compartment from the Table Scope list.

Using the CLI: To list the instances running on a dedicated virtual machine host, run the following command:

oci compute dedicated-vm-host list --compartment-id <compartment_OCID> --dedicated-vm-host-id <dedicatedVMhost_OCID>

Run this command for every compartment in your tenancy that has instances running on the dedicated virtual machine host that you want to delete.

Using the API: Use the ListDedicatedVmHostInstances operation.

Using the Console

  1. Open the navigation menu and click Compute. Under Compute, click Dedicated Virtual Machine Hosts.
  2. Click the dedicated virtual machine host that you want to delete.
  3. Click Delete, and then confirm when prompted.

Using the CLI

Open a command prompt and run:

oci compute dedicated-vm-host delete --dedicated-vm-host-id <dedicated_VM_host_OCID>

Using the API

Use the DeleteDedicatedVmHost operation.

Instances on Dedicated Virtual Machine Hosts

Placing Instances on a Dedicated Virtual Machine Host

You place an instance on a dedicated virtual machine host at the time that you create the instance.

The dedicated virtual machine host must have sufficient capacity for the shape of instance that you want to create.

How do I know if a dedicated virtual machine host has capacity for an instance?

In the Console, when you create an instance, you can only select from the dedicated virtual machine hosts that have sufficient capacity for the shape that you specify.

You can use the API, CLI, or SDKs to determine which dedicated virtual machine hosts have capacity for a particular shape. Use the ListDedicatedVmHosts API operation, passing the name of the shape that you want to use when launching the instance. For flexible shapes, you can also include the minimum number of OCPUs and amount of memory you want to provision.

The following example demonstrates how to use the CLI to return all the dedicated virtual machine hosts with sufficient capacity for you to place an instance launched using the VM.Standard2.16 shape:

oci compute dedicated-vm-host list --compartment-id <compartment_OCID> --instance-shape-name VM.Standard2.16

For more information, see Optimizing Capacity on a Dedicated Virtual Machine Host.

Using the Console

  1. Follow the steps to create an instance, until the Placement section.
  2. In the Placement section, click Show advanced options.
  3. For Capacity type, select Dedicated host.
  4. Select the dedicated virtual machine host that you want to place the instance on.
  5. Finish configuring the instance, and then click Create.

Using the API

Use the LaunchInstance operation to create the instance, passing the OCID of the dedicated virtual machine host in the dedicatedVmHostId parameter.

Auditing your Dedicated Virtual Machine Host

To fully meet requirements for some compliance scenarios, you might be required to validate that your instances are running on a dedicated virtual machine host and not using shared infrastructure. The Oracle Cloud Infrastructure Audit service provides you with the functionality to do this. Use the steps described in Viewing Audit Log Events to access the log events for the dedicated virtual machine host.

The steps described in the To search log events section walk you through how to retrieve the log events with the data you need to verify that your instances are running on a dedicated virtual machine host. For this procedure:

  • Ensure that you select the dedicated virtual machine host's compartment and not the compartment for the instances that are hosted on it.
  • Use the dedicated virtual machine host's OCID as the search keyword.

After you have retrieved the log events for the dedicated virtual machine host, view the log event lower-level details, and check the contents of the responsePayload property. This property should contain the OCIDs for the instances that are running on the dedicated virtual machine host.

Optimizing Capacity on a Dedicated Virtual Machine Host

When designing your cloud footprint, we recommend that you plan to always launch the largest instance first. Here's why:

When you place instances on a dedicated virtual machine host, Oracle Cloud Infrastructure launches the instances in a manner to optimize performance. For example, a dedicated virtual machine host created based on the DVH.Standard2.52 shape has two sockets with 24 cores configured per socket. Instances are placed so that each instance will only use resources that are local to a single physical socket. In scenarios where you are creating and terminating instances with a mix of shapes, this can result in an inefficient distribution of resources, meaning that not all OCPUs on a dedicated virtual machine host are available to be used. It might appear that a dedicated virtual machine host has enough OCPUs to launch an additional instance, but the new instance will fail to launch because of the distribution of existing instances.

Continuing this example, say that you want to launch instances using a shape with 16 OCPUs. On a DVH.Standard2.52 dedicated virtual machine host, you can only launch a maximum of two instances with 16 OCPUs. You cannot launch a third instance with 16 OCPUs, even though the dedicated virtual machine host has 16 remaining OCPUs. You can, however, launch additional instances using shapes with a smaller number of OCPUs.

What this means is, when you're placing an instance on a dedicated virtual machine host, you can only create the instance if the host has sufficient capacity based on the shape of the instance. In the Console, you can only choose from the hosts with sufficient capacity. Similarly, when you place an instance on a dedicated virtual machine host using the API, CLI, or SDKs, the operation will succeed only if the dedicated virtual machine host has sufficient capacity.

If you have a dedicated virtual machine host that doesn't have enough capacity to launch instances, you can do any of the following things:

  • Terminate instances you no longer need on the dedicated virtual machine host to make capacity available.
  • Choose a different, smaller shape for the instance you are trying to place on the dedicated virtual machine host.
  • Create a new dedicated virtual machine host to place the instance on.