Skip to main content
You can create a Compute virtual machine (VM) in the web console, or by using the CLI or Terraform provider. You can tailor the VM configuration to your needs and, for example, attach secondary disks and filesystems, or allocate GPU resources to your VM. The VM that you create this way is a standalone VM, which is a general-purpose Compute resource. In the web console, standalone VMs are displayed on the Standalone VMs tab of the Virtual machines page. Other Compute resources, such as container VMs, Managed Service for Kubernetes® nodes or Serverless AI job and endpoint VMs, are displayed on separate tabs. A standalone VM can be regular or preemptible: regular VMs run until you stop them, while Compute may stop preemptible VMs at any time.

Steps

(Optional) Create a user data configuration

You do not need to create a user data configuration in advance if you create a VM in the web console.
To add a user for connections to a VM, create a configuration by using the cloud-init format:
The configuration contains the following parameters:
  • name: Username for connecting to the VM. The above example sets the value of the machine’s USER environment variable as the username for the VM. Do not use the root or admin usernames. They are reserved for internal needs and are not allowed to connect to a VM by SSH.
  • sudo: Sudo policy. ALL=(ALL) NOPASSWD:ALL allows users unrestricted sudo access; False disables sudo access for users.
  • shell: Default shell.
  • ssh_authorized_keys: User’s authorized keys. Allows configuring SSH access to the VM. To create the key pair, follow the instructions in Generating SSH keys.
You can specify several users and their public SSH keys.For more information, see cloud-init configuration examples.

Create a VM

  1. In the sidebar, go to  Compute → Virtual machines.
  2. Click Create resource → Virtual machine. The creation flow is a step-by-step wizard. The sidebar shows your progress through the configuration sections. To move between sections, click Back and Next at the bottom of each step.
  3. If you have capacity block groups, on the General step, choose how Compute allocates resources:
    • Reserved VM: Capacity is assured by your capacity block groups. This option is for regular VMs with GPUs. If you have active capacity block groups, the card shows how many are available.
    • Pay-as-you-go VM: Capacity is subject to availability. This option allows preemptible VMs and VMs without GPUs.
    If you do not have capacity block groups, the wizard skips the General step and opens Compute instead.
  4. On the Compute step, configure computing resources: Reserved VM:
    1. In the Platform section, select a platform. The list shows platforms that match your capacity block groups. Each platform card shows GPU memory, the platform ID and badges for associated capacity block groups.
    2. In the Reservation section, configure how Compute uses your reservations. The Reservation section is only displayed if you have capacity block groups.
      1. If you have capacity block groups in multiple regions, select a Region.
      2. To let Compute choose among your capacity block groups automatically, select Any (existing and future).
      3. To use specific capacity block groups, select them. Each option shows the capacity block group ID, reservation period and GPU usage.
      4. Under Switch to PAYG, choose whether the VM can start after you create or restart it without active intervals in selected capacity block groups:
        • When reservation is exhausted: The VM can start as a pay-as-you-go VM when no capacity is available in the selected capacity block groups.
        • Never: The VM cannot start without available capacity in the selected capacity block groups.
        This does not affect the VM when it is running. If an interval in a selected capacity block group expires while the VM is running, the VM always continues as a pay-as-you-go VM, regardless of this setting.
    3. In the Settings section, configure the following:
      1. Select a Preset.
      2. (Optional) If you create a VM with 8 GPUs (for example, for training models), use a GPU cluster for the VM. InfiniBand™ in the cluster allows you to accelerate tasks that require high-performance computing (HPC) power. A single VM without InfiniBand cannot perform these tasks as quickly. To use a GPU cluster, select an existing one or create a new cluster:
        1. Click  Create in the GPU cluster field.
        2. In the window that opens, specify the cluster name and InfiniBand fabric. To select the fabric, see InfiniBand fabrics.
        3. Click Create.
      3. Select the Project for the VM location.
      4. Specify the VM name.
    Pay-as-you-go VM:
    1. At the top of the platform list, select With GPUs or Without GPUs and the VM type Regular or Preemptible. VMs without GPUs only support the regular type.
    2. Select a platform and preset. Expand a platform card to compare available presets by region. You can also see the platforms that are not currently available.
    3. In the Settings section, configure the following:
      1. Select a Preset.
      2. (Optional) If you create a VM with 8 GPUs (for example, for training models), use a GPU cluster for the VM. InfiniBand™ in the cluster allows you to accelerate tasks that require high-performance computing (HPC) power. A single VM without InfiniBand cannot perform these tasks as quickly. To use a GPU cluster, select an existing one or create a new cluster:
        1. Click  Create in the GPU cluster field.
        2. In the window that opens, specify the cluster name and InfiniBand fabric. To select the fabric, see InfiniBand fabrics.
        3. Click Create.
      3. Select the Project for the VM location.
      4. Specify the VM name.
    To check GPU availability across regions and presets before you create a VM, use the capacity advisor.
  5. On the Storage step, configure disks and filesystems:
    1. In the Boot disk section, set the boot disk settings:
      1. Click  on the boot disk card.
      2. In the window that opens, select an existing disk or create a new one.
      3. If you create a new boot disk, choose an operating system image: either a public image provided by Nebius or a custom image or image family that you created yourself. Also, configure the type, encryption, size and block size. For more information about these settings, see Volume parameters.
    2. (Optional) If you want to attach an additional disk to your VM, in the Additional disks section:
      1. Click  Attach disk.
      2. In the window that opens, select an existing secondary disk or create a new one.
      3. If you create a new disk, specify its name and configure the type, encryption, size and block size.
      4. Click Attach disk.
      After you create the VM, mount the additional disks to it. Otherwise, the VM’s operating system does not recognize these disks.
    3. (Optional) If the selected platform supports local SSD disks, enable Local SSD disks to add ephemeral local storage.
      Local SSD disks are available only for supported platforms and presets. For details, see Availability.
    4. (Optional) If you want to attach a filesystem to your VM, in the Shared filesystems section:
      1. Click  Attach shared filesystem.
      2. In the window that opens, select an existing filesystem or create a new one.
      3. If you create a new filesystem, specify its name, size and the block size.
      4. Click Attach filesystem.
      5. After the window is closed, specify a mount tag for mounting the filesystem to the VM. Create your own tag, such as my-filesystem. Make sure that it is unique within the VM.
      6. To mount the filesystem to the VM automatically, keep the Auto mount option enabled.
  6. On the Network step, attach the VM to a network and subnet:
    1. Select the Network and Subnet.
    2. In the Primary private IP address field, select whether to automatically assign a private IP address or select an already allocated one. For more information, see Private IP addresses.
    3. (Optional) In the Secondary private IP address field, assign secondary addresses. Use them as a backup option in case of incidents. For example, a backup node can take a secondary address of the main node when the main one fails. As a result, routing to this address can be preserved. After you click  Add IP address, you can specify a new address or select an already created allocation. You can assign no more than five secondary addresses.
    4. In the Public IP address field, specify whether the VM should have a public address and whether this address should be dynamic, static or taken from an allocation. If you need to secure your VM and make it isolated, you can create a VM without a public IP address. If you need to connect to this VM from the internet, you can set up a WireGuard jump server. It has an IP address in the internet and an IP address in the VM’s network. As a result, you can access the VM via the jump server from the internet. This approach enhances security and still provides access to the VM. For more information, see How to enable a public IP address for a VM.
    5. In the Hostname field, specify whether to use the VM ID or a custom hostname for the VM’s FQDN:
      • Same as VM ID: The default FQDN uses the VM ID.
      • Custom: Specify your own hostname.
  7. On the Configuration step, configure access, identity and VM startup settings:
    1. In the Access section, add credentials so you can connect to the VM:
      1. Generate an SSH key pair.
      2. In the Username and SSH key field, click  Create.
      3. In the window that opens, specify the username of the VM user, a public key of your SSH key pair and the credentials name to recognize the key in the list. Do not use the root or admin usernames. They are reserved for internal needs and are not allowed to connect to a VM by SSH.
      4. Click Add credentials.
    2. (Optional) In the Additional section, select an existing service account or click  Create to add a new one. The service account will perform actions on behalf of the VM, for example, run scripts.
    3. (Optional) In the User data section, select Enable custom cloud-init config and set a configuration in the cloud-init format. This configuration affects the settings for shared filesystems and access that you set up earlier:
      • If you add a cloud-init configuration, you cannot manage the Auto mount option for filesystems. Their mounting settings automatically appear in the configuration.
      • The username and SSH key that you specify on the Configuration step are automatically added to a cloud-init configuration if you enable it. Ultimately, the settings from the configuration apply, not those from the Configuration step.
      The default configuration that only adds the user contains the following parameters:
      • name: Username for connecting to the VM. The above example sets the value of your machine’s USER environment variable as the username for the VM.
      • sudo: Sudo policy. ALL=(ALL) NOPASSWD:ALL allows users unrestricted sudo access; False disables sudo access for users.
      • shell: Default shell.
      • ssh_authorized_keys: User’s authorized keys. Allows configuring SSH access to the VM.
      You can specify several users and their public SSH keys. For more information, see cloud-init configuration examples.
  8. On the Review step, check the full VM configuration. To change a section quickly, click next to the corresponding block. The wizard opens the relevant step with your current settings.
  9. Click Create VM.

Examples

Create a VM without an additional disk or filesystem

To create a VM, run the following command:
The VM is provided with a dynamic public IPv4 address.For more information about the command parameters, see Create a VM.

Create a VM with an additional disk

Create a VM, its boot disk and an additional disk together:
The VM is provided with a dynamic public IPv4 address.For more information about the command parameters, see Create a VM.

Create a VM with a filesystem

  1. Create a filesystem:
    Save the filesystem ID from the output metadata.id parameter.
    Mount filesystems after you create the VM. Otherwise, the filesystems are not attached to the VM.
  2. Create the VM:
    The VM is provided with a dynamic public IPv4 address. For more information about the command parameters, see Create a VM.

Create a VM with local SSD disks

Local SSD disks are available only for supported platforms and presets. For details, see Availability.
To create a VM with local SSD disks, run the following command:
This adds ephemeral local storage to the VM.The example creates a private IPv4 address and doesn’t assign a public IPv4 address. For more information about the command parameters, see Create a VM.

Create a VM with standalone boot and additional disks

By default, when you create a VM, its disks are created along with this VM. Such disks are called VM-managed: their lifecycle is tied to the VM, so when you delete the VM, its disks are deleted along with it. Alternatively, if you already have a disk or you want to keep the disk after the VM deletion, create a standalone disk first and attach it to the VM afterward. To create standalone disks and a VM with them, do the following:
  1. Create a boot disk:
    Save the disk ID from the output metadata.id parameter. For more information about disk creation, see Managing Compute volumes.
  2. Create an additional disk:
    Save the disk ID from the output metadata.id parameter.
    After you create the VM, mount the additional disks to it. Otherwise, the VM’s operating system does not recognize these disks.
  3. Create a VM:
    The VM is provided with a dynamic public IPv4 address. For more information about the command parameters, see Create a VM.

Create a VM within a GPU cluster

If you want to create a VM with 8 GPUs (for example, for training models), create a GPU cluster for the VM. By using InfiniBand, the cluster accelerates tasks that require high-performance computing (HPC) power.
  1. Create a GPU cluster:
    To select the fabric, see InfiniBand fabrics. Save the cluster ID from the output metadata.id parameter.
  2. Create a VM:
    The VM is provided with a dynamic public IPv4 address. For more information about the command parameters, see Create a VM.

“Not enough resources” error

Sometimes, demand for virtual machines and GPUs in certain Nebius AI Cloud regions might be higher than the available supply. When this happens, you might see a “Not enough resources” error when creating or restarting VMs in the affected region. For more details, see “Not enough resources” error for virtual machines in Nebius AI Cloud.

See also


InfiniBand and InfiniBand Trade Association are registered trademarks of the InfiniBand Trade Association.