Skip to main content
In this article, you will learn how to use Compute disks and shared filesystems on virtual machines (VMs).
This article only covers additional volumes: non-boot disks and shared filesystems. You add a boot disk when you create a VM.
After creating a disk or a shared filesystem, you need to do the following to use it on a VM:
  1. Add it to the VM by using Nebius AI Cloud interfaces.
  2. Mount it to the VM inside the VM’s operating system.
A VM and its volumes must be located in the same project. For more details about projects and resource hierarchy in Nebius AI Cloud, see How resources, identities and access are managed in Nebius AI Cloud.

How to add volumes to VMs

To add disks or shared filesystems to a VM:
  • New VM On the VM creation page (https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/sidebar/compute.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=b91340217b08a1456d88ae0347f281d1 Compute → Virtual machines → Create virtual machine), do the following:
    1. Click Attach disk or Attach shared filesystem.
    2. Set up the volume:
      1. Select whether you want to add a new or existing volume. If an existing disk is already added to another VM, you cannot add it to the new VM. A filesystem can be shared by multiple VMs.
      2. For a new volume, set its parameters.
      3. Set a device ID if you are adding a disk, or a mount tag if you are attaching a filesystem. Device IDs and mount tags are used to mount volumes to VMs.
    3. Click the attach-volume button at the end of the window.
      When you click Create and add disk or Create and attach filesystem, the disk or filesystem is created immediately and charged separately even if you remove it from the VM later or do not proceed with creating the VM.
    4. If you want to manually mount the filesystem that you added to the VM, turn off the Auto mount option for the filesystem. By default, Compute automatically mounts filesystems that you add to VMs via the web console. If you add a disk, you always need to mount it manually.
  • Existing VM
    1. In the sidebar, go to https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/sidebar/compute.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=b91340217b08a1456d88ae0347f281d1 Compute → Virtual machines.
    2. Open the page of the required VM.
    3. If the VM is not in the Stopped status, click Stop VM and then confirm the action.
    4. Switch to the Disks or Filesystems tab.
    5. After the VM has the Stopped status, click https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1 Attach disk or https://mintcdn.com/nebius-ai-cloud/1Ha0sWR6e1mnIaHS/_assets/plus.svg?fit=max&auto=format&n=1Ha0sWR6e1mnIaHS&q=85&s=7c9efc69d65fc58db0eb73702fd81aa1 Attach filesystem.
    6. Set up the volume:
      1. Select whether you want to add a new or existing volume. If an existing disk is already added to another VM, you cannot add it to the new VM. A filesystem can be shared by multiple VMs.
      2. For a new volume, set its parameters.
      3. Set a device ID if you are adding a disk, or a mount tag if you are attaching a filesystem. Device IDs and mount tags are used to mount volumes to VMs.
    7. Click the attach-volume button at the end of the window.

How to mount volumes to VMs

Disks

  1. Add the disk to a VM.
  2. If you have not saved the disk’s device ID, for example, when adding it to the VM, get it from the information about the VM:
    nebius compute instance get --id <VM_ID> --format json \
      | jq -r --arg disk_id <disk_ID> \
        '.spec.secondary_disks[]
        | select(.existing_disk.id == $disk_id)
        | .device_id'
    
    To get the VM ID, run nebius compute instance list. To get the disk ID, run nebius compute disk list.
  3. Connect to the VM over SSH.
  4. Switch to the root user:
    sudo su -
    
  5. Partition the device. For example, you can use cfdisk. In the example below, we assume that you have named the device disk-0; for disks, all device IDs are prefixed with virtio-:
    1. Run cfdisk:
      cfdisk /dev/disk/by-id/virtio-disk-0
      
      Referring to a device by its name, e.g., /dev/vdb, does not guarantee it will function properly. Use the device ID instead, e.g., /dev/disk/by-id/virtio-disk-0.
    2. Under Select label type, select gpt and press Enter.
    3. Select New (partition) and press Enter.
    4. Enter the partition size and press Enter. This will create a /dev/disk/by-id/virtio-disk-0-part1 partition.
    5. Select Write (the partition table to the device) and press Enter, then type yes and press Enter.
    6. Select Quit and press Enter.
  6. Format the partition:
    mkfs.ext4 /dev/disk/by-id/virtio-disk-0-part1
    
  7. Mount the partition and configure permissions for it by using chmod. In the example below, the partition is mounted at /mnt/disk-0, and all VM users are granted write access to it:
    mkdir /mnt/disk-0
    mount /dev/disk/by-id/virtio-disk-0-part1 /mnt/disk-0
    chmod a+w /mnt/disk-0
    
  8. If you want the partition to be mounted automatically after every VM restart, add it to /etc/fstab by its UUID:
    echo "UUID=$(blkid -s UUID -o value /dev/disk/by-id/virtio-disk-0-part1) /mnt/disk-0 ext4 defaults,nofail 0 2" >> /etc/fstab
    
    Do not omit nofail. If it is not specified and the VM cannot find the partition on restart (for example, the disk has been repartitioned), the VM will not boot.
  9. Exit the root user shell:
    exit
    

Shared filesystems

If you create a VM in the web console, you can automatically attach and mount a shared filesystem to the VM by using the Auto mount option. If you do not use it, mount the filesystem manually. To do this:
  1. Add the shared filesystem to a VM.
  2. If you have not saved the filesystem’s mount tag, for example, when adding it to the VM, get the mount tag from the information about the VM:
    nebius compute instance get --id <VM_ID> --format json \
      | jq -r --arg fs_id <filesystem_ID> \
        '.spec.filesystems[] 
        | select(.existing_filesystem.id == $fs_id) 
        | .mount_tag'
    
    To get the VM ID, run nebius compute instance list. To get the disk ID, run nebius compute filesystem list.
  3. Connect to the VM over SSH.
  4. Switch to the root user:
    sudo su -
    
  5. Mount the filesystem as a virtiofs device and configure permissions for it by using chmod. In the example below, a filesystem has the mount tag filesystem-0 and is mounted at /mnt/fs. All VM users are granted write access to it:
    mkdir /mnt/fs
    mount -t virtiofs filesystem-0 /mnt/fs
    chmod a+w /mnt/fs
    
  6. If you want the filesystem to be mounted automatically after every VM restart, add it to /etc/fstab:
    echo "filesystem-0 /mnt/fs virtiofs rw,nofail 0 0" >> /etc/fstab
    
    Do not omit nofail. If it is not specified and the VM cannot find the filesystem on restart (for example, it has been deleted), the VM will not boot.
  7. Exit the root user shell:
    exit
    

See also