> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebius.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Capacity reservations for Compute virtual machines

To make sure that GPU capacity is always available for your virtual machines (VMs), you can reserve GPUs. A *reservation* represents a [capacity block group](/overview/limits/capacity-block-groups), and it reserves a specific number of GPUs that are allocated to your infrastructure. GPUs from a reservation remain available, even if a VM is stopped. Without reservations, GPU capacity is taken from a shared pool and returned when a VM is stopped (for example, by you or a [maintenance event](./maintenance)).

To start using reservations, send a request to your Nebius manager. In this request, specify how many GPUs you would like to reserve and for what period. If you are not in contact with a Nebius manager, you can ask [technical support](https://console.nebius.com/support/create-ticket) to connect you with one.

After reservations are ready, you can add them to your VMs when you create or update these VMs. You can also check your capacity block groups on the **Limits** page and get detailed information about them. For more information, see [List of capacity block groups](/overview/limits/capacity-block-groups#list-of-capacity-block-groups).

<Note>
  GPUs allocated from reservations do not count towards [quotas on the number of GPUs](/compute/resources/quotas-limits#gpu-virtual-machines).
</Note>

## How to add reservations to VMs

VMs of a regular type and with GPUs support reservations. [Preemptible VMs](./preemptible) and VMs without GPUs do not support them.

<Tabs>
  <Tab title="Web console">
    If you want to [create a VM](./manage#create-a-vm), in the creation form, under **Computing resources**, select **With GPU** and a regular VM type. After that, specify the **Reservation usage** settings.

    If you want to modify an existing VM, [stop it](./stop-start#how-to-stop-and-start-vms-manually) first and then go to its **Settings** tab on the VM page. Next, update the **Reservation usage** settings.

    The **Reservation usage** settings are only displayed if you have capacity block groups.

    Available **Reservation usage** options:

    * **With reservations**: Resources are allocated from reservations.

      You can use one of the following reservation types:

      * **Any** (default): You do not need to select reservations. The service uses the reservations that are most suitable for the configuration of your VM.
      * **Specific**: Select specific reservations. Make sure to select reservations that have enough capacity and that do not expire in several days.

      If there are no reservations available during the VM lifecycle, you can run your VM without reservations. Resources for it will be taken from the common pool. To configure this behavior, enable the **Start without a reservation when reservation capacity is exhausted** option.

    * **Without reservations**: Resources are allocated from the common pool, and no reservations are used for the VM.
  </Tab>

  <Tab title="CLI">
    Use the `--reservation-policy-*` parameters when creating or updating a VM:

    * To create a VM, use the following command:

      ```bash theme={null}
      nebius compute instance create \
        ... \
        --reservation-policy-policy <auto|forbid|strict> \
        --reservation-policy-reservation-ids <reservations>
      ```

    * To update a VM, [stop it](./stop-start#how-to-stop-and-start-vms-manually) first and then use the following command:

      ```bash theme={null}
      nebius compute instance update \
        ... \
        --reservation-policy-policy <auto|forbid|strict> \
        --reservation-policy-reservation-ids <reservations>
      ```

    Description of the parameters:

    * `--reservation-policy-policy`: Policy for reservation usage. Supports the following values:

      * `auto`: VM resources are allocated from reservations. If no reservations are currently available, the VM runs without them. In this case, resources for the VM are provided from the common pool.

            <Note>
              The `auto` value is default. If you don't have any reservations and you don't set the `--reservation-policy-policy` parameter, the `auto` value applies and the VM runs without reservations.
            </Note>
      * `forbid`: VM resources are provided from the common pool, and no reservations are used.
      * `strict`: VM resources are exclusively allocated from reservations. The VM doesn't run without the reservations.

    * `--reservation-policy-reservation-ids` (optional): IDs of specific reservations (capacity block groups). Use this parameter only if you need specific reservations.

      Specify the IDs in the order in which reservations should apply. For instance, resources should be allocated from the first specified reservation. When it is exhausted or expired, the service uses resources from the second specified reservation, and so on.

      Make sure to select reservations that have enough capacity and that do not expire in several days.

    To find out how different combinations of parameter values impact the result, see the table below:

    | `policy` | `reservation-ids` | **Behavior**                                                                                                                                                                                                      |
    | -------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `auto`   | Not specified     | Compute tries to launch a VM in any available and suitable reservation. If none is found, VM resources are provided from the common pool, not from a reservation.                                                 |
    | `auto`   | Specified         | Compute tries to launch a VM in one of the specified reservations. If none of them fit (for example, they are not currently active or there are not enough GPUs), VM resources are provided from the common pool. |
    | `forbid` | Not specified     | VM resources are provided from the common pool. No reservations are used.                                                                                                                                         |
    | `forbid` | Specified         | Not supported. If you apply this combination, it will result in a validation error.                                                                                                                               |
    | `strict` | Not specified     | Compute tries to launch a VM in any available and suitable reservation. If none is found, a request for creating or updating a VM fails.                                                                          |
    | `strict` | Specified         | Compute tries to launch a VM in one of the specified reservations. If none of them fit, a request for creating or updating a VM fails.                                                                            |
  </Tab>

  <Tab title="Terraform">
    Use the `reservation_policy` parameter in the VM configuration:

    ```hcl theme={null}
    resource "nebius_compute_v1_instance" "my_vm" {
      ...
      reservation_policy = {
        policy          = "<AUTO|FORBID|STRICT>"
        reservation_ids = "<reservations>"
      }
      ...
    }
    ```

    Description of the parameters:

    * `policy`: Policy for reservation usage. Supports the following values:

      * `AUTO`: VM resources are allocated from reservations. If no reservations are currently available, the VM runs without them. In this case, resources for the VM are provided from the common pool.

            <Note>
              The `AUTO` value is default. If you don't have any reservations and you don't set the `policy` parameter, the `AUTO` value applies and the VM runs without reservations.
            </Note>
      * `FORBID`: VM resources are provided from the common pool, and no reservations are used.
      * `STRICT`: VM resources are exclusively allocated from reservations. The VM doesn't run without the reservations.

    * `reservation_ids`: IDs of specific reservations (capacity block groups). You can use this parameter with the `AUTO` and `STRICT` reservation usages:

      Specify the IDs in the order in which reservations should apply. For instance, resources should be allocated from the first specified reservation. When it is exhausted or expired, the service uses resources from the second specified reservation, and so on.

      Make sure to select reservations that have enough capacity and that do not expire in several days.

    To find out how different combinations of parameter values impact the result, see the table below:

    | `policy` | `reservation_ids` | **Behavior**                                                                                                                                                                                                      |
    | -------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | `AUTO`   | Not specified     | Compute tries to launch a VM in any available and suitable reservation. If none is found, VM resources are provided from the common pool, not from a reservation.                                                 |
    | `AUTO`   | Specified         | Compute tries to launch a VM in one of the specified reservations. If none of them fit (for example, they are not currently active or there are not enough GPUs), VM resources are provided from the common pool. |
    | `FORBID` | Not specified     | VM resources are provided from the common pool. No reservations are used.                                                                                                                                         |
    | `FORBID` | Specified         | Not supported. If you apply this combination, it will result in a validation error.                                                                                                                               |
    | `STRICT` | Not specified     | Compute tries to launch a VM in any available and suitable reservation. If none is found, a request for creating or updating a VM fails.                                                                          |
    | `STRICT` | Specified         | Compute tries to launch a VM in one of the specified reservations. If none of them fit, a request for creating or updating a VM fails.                                                                            |
  </Tab>
</Tabs>

## How to find information about reservations for an already configured VM

You can check the list of VMs and an overview of a given VM to find information about the VM reservations.

### List of VMs

The [list of VMs](https://console.nebius.com/compute) provides the following:

* The **Platform and VM type** column shows what configuration you have set up for a given VM.
* The **Current reservations** column shows what reservations are currently used.

Data in these columns does not always match:

* If a VM is preemptible or stopped, **Current reservations** do not show any data (**N/A** is displayed).
* If capacity in reservations is exhausted, **Current reservations** show that there are no reservations currently consumed.

### VM overview

On the VM page, in the **VM overview** tab, in the **Resource capacity** block, you can find more detailed information:

* The **VM type**, **Reservation usage** and **If no capacity** fields show the configuration that you have set up.
* The **Current reservations** and **Next interval** fields show the current consumption of reservations.

  If the VM runs without reservations, no data about them is displayed.

## Billing for reservations

Reservations and [billing models](/signup-billing/billing-models/overview) do not match directly. If your VMs run without reservations, this does not mean that the pay-as-you-go (PAYG) pricing applies by default for these VMs. It depends on whether you have an addendum for the commitment discounts.

When a Nebius manager creates reservations for you, they also prepare an addendum for the commitment discounts. After the addendum comes into force, you are charged for VMs based on this billing model. If your VM runs without reservations, the service still charges you based on the commitment discounts because of the addendum.

If you do not have the addendum, your VMs are based on PAYG.

## See also

* [Capacity block groups in Nebius AI Cloud](/overview/limits/capacity-block-groups)
* [Capacity reservations for Managed Service for Kubernetes® node groups](/kubernetes/node-groups/reservations)
