Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 2025 Direct Cursus Technology L.L.C.
Yandex Compute Cloud
    • All guides
      • Creating a file storage
      • Attaching a file storage to a VM
      • Detaching a file storage from a VM
      • Updating a file storage
      • Getting information about a file storage
      • Configuring file storage access permissions
      • Deleting a file storage
    • Viewing operations with resources
  • Yandex Container Solution
  • Access management
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes
  1. Step-by-step guides
  2. File storages
  3. Attaching a file storage to a VM

Attaching a file storage to a VM

Written by
Yandex Cloud
Updated at May 5, 2025

Warning

You can only attach a file storage to VMs running a Linux OS with kernel version 5.4 or higher.

To check the kernel version, run sudo uname -r.

  1. If the VM status is RUNNING, stop it.

  2. Attach a file storage to the VM in Compute Cloud:

    Management console
    CLI
    Terraform
    API
    1. In the management console, select the folder where you created the file storage.
    2. Select Compute Cloud.
    3. In the left-hand panel, select File storages.
    4. Select the storage.
    5. Go to the Virtual machines tab.
    6. Click Attach to VM.
    7. In the window that opens:
      1. Select the VM.
      2. Specify the device name to represent the file storage in the VM. Save this name as you will need it when mounting the storage.
      3. Click Attach to VM.

    If you do not have the Yandex Cloud CLI yet, install and initialize it.

    The folder specified when creating the CLI profile is used by default. To change the default folder, use the yc config set folder-id <folder_ID> command. You can specify a different folder using the --folder-name or --folder-id parameter.

    1. See the description of the CLI command for attaching a file storage to a VM:

      yc compute instance attach-filesystem --help
      
    2. Get a list of file storages in the default folder:

      yc compute filesystem list
      

      Result:

      +----------------------+-------------------+------------+---------------+--------+-------------+
      |          ID          |        NAME       |    SIZE    |     ZONE      | STATUS | DESCRIPTION |
      +----------------------+-------------------+------------+---------------+--------+-------------+
      | epdtcr9blled******** | first-filesystem  | 1073741824 | ru-central1-a | READY  |             |
      | epd3f4gv8bs4******** | second-filesystem | 1073741824 | ru-central1-a | READY  |             |
      +----------------------+-------------------+------------+---------------+--------+-------------+
      
    3. Get a list of VMs in the default folder:

      yc compute instance list
      

      Result:

      +----------------------+-------+---------------+---------+--------------+-------------+
      |          ID          | NAME  |    ZONE ID    | STATUS  |  EXTERNAL IP | INTERNAL IP |
      +----------------------+-------+---------------+---------+--------------+-------------+
      | epdj4upltbiv******** | vm-01 | ru-central1-a | RUNNING | 51.250.**.** | 192.168.*.* |
      | 1pc3088tkv4m******** | vm-02 | ru-central1-a | RUNNING | 84.201.**.** | 192.168.*.* |
      +----------------------+-------+---------------+---------+--------------+-------------+
      
    4. Attach the file storage to the VM:

      yc compute instance attach-filesystem \
        --id <VM_ID> \
        --filesystem-id <file_storage_ID> \
        --device-name <device_name>
      

      Where:

      • --id: VM ID.

        Instead of the ID, you can specify the VM name in the --name parameter.

      • --filesystem-id: File storage ID.

        Instead of the ID, you can specify the file storage name in the --filesystem-name parameter.

      • --device-name: Device name to represent the file storage in the VM. This is an optional parameter.

        By default, the file storage ID is used as the device name.

      Result:

      id: epdj4upltbiv********
      folder_id: b1g681qpemb4********
      created_at: "2024-04-29T15:50:19Z"
      name: vm-01
      ...
      filesystems:
      - mode: READ_WRITE
        device_name: attached-filesystem
        filesystem_id: epdtcr9blled********
      ...
      

    If you do not have Terraform yet, install it and configure its Yandex Cloud provider.

    Set the allow_stopping_for_update parameter to true on your VM, if you have not done it yet.

    To attach a file storage to your VM, add the filesystem section with the filesystem_id parameter to the VM description (see the example below).

    1. Open the Terraform configuration file and add a section specifying the storage to the VM description:

      Example of specifying a storage in the VM configuration using Terraform
      ...
      resource "yandex_compute_instance" "vm-1" {
        name        = "test-vm"
        platform_id = "standard-v3"
        zone        = "ru-central1-a"
      
        filesystem {
          filesystem_id = "fhmaikp755gr********"
        }
      }
      ...
      
    2. Apply the changes:

      1. In the terminal, change to the folder where you edited the configuration file.

      2. Make sure the configuration file is correct using the command:

        terraform validate
        

        If the configuration is correct, the following message is returned:

        Success! The configuration is valid.
        
      3. Run the command:

        terraform plan
        

        The terminal will display a list of resources with parameters. No changes are made at this step. If the configuration contains errors, Terraform will point them out.

      4. Apply the configuration changes:

        terraform apply
        
      5. Confirm the changes: type yes in the terminal and press Enter.

    You can check whether the storage has been attached to the VM using the management console or this CLI command:

    yc compute instance get <VM_name>
    

    Use the attachFilesystem REST API method for the Instance resource or the InstanceService/AttachFilesystem gRPC API call.

  3. Mount the file storage on the VM:

    1. If you do not know the device name, run this command:

      yc compute instance get <VM_name>
      

      Result:

      ...
      filesystems:
        - mode: READ_WRITE
          device_name: storagename
          filesystem_id: epdb1jata63j********
      ...
      

      Save the value of the device_name field under filesystems. This is the name of the device to mount your file storage on; you will need it later.

    2. Connect to the VM via SSH.

    3. Run this command:

      sudo mount -t virtiofs <device_name> <mount_path>
      

      Where:

      • <device_name>: Value of the device_name field you saved before. In the example above, it is storagename. Your device name may be different.
      • <mount_path>: Folder or disk to mount the file storage to, e.g., /mnt/vfs0.
    4. Check that the file storage has been mounted:

      df -T
      

      Result:

      Filesystem        Type         1K-blocks    Used Available Use% Mounted on
      udev              devtmpfs        988600       0    988600   0% /dev
      tmpfs             tmpfs           203524     780    202744   1% /run
      /dev/vda2         ext4          13354932 1909060  10861420  15% /
      tmpfs             tmpfs          1017604       0   1017604   0% /dev/shm
      tmpfs             tmpfs             5120       0      5120   0% /run/lock
      tmpfs             tmpfs          1017604       0   1017604   0% /sys/fs/cgroup
      tmpfs             tmpfs           203520       0    203520   0% /run/user/1000
      storagename       virtiofs      66774660       0  66774660   0% /mnt/vfs0
      
    5. To mount the file storage every time the VM starts, add the following line to the /etc/fstab file:

      <device_name> <mount_path> virtiofs    rw    0   0
      

Was the article helpful?

Previous
Creating a file storage
Next
Detaching a file storage from a VM
© 2025 Direct Cursus Technology L.L.C.