Detaching a file storage from a VM
-
Unmount the file storage from the VM:
-
Connect to the VM over SSH.
-
If you had added a line to the
/etc/fstab
file to automatically mount a file storage to the VM at startup (e.g., when attaching a storage to the VM), delete this line. -
Run this command:
sudo umount <mount_path>
-
To check that your file storage has been unmounted, run this command:
df -T
As a result, there should be no
virtiofs
type file system corresponding to the file storage: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
-
-
Detach the file storage from the VM in Compute Cloud:
Management consoleCLITerraformAPI- In the management console
, select the folder where your file storage resides. - Select Compute Cloud.
- In the left-hand panel, select
File storages. - Select the required storage.
- Go to the Virtual machines tab.
- In the line of the appropriate VM, click
and select Detach file storage. - In the window that opens, confirm the detach operation.
If you do not have the Yandex Cloud command line interface yet, install and initialize it.
The folder specified in the CLI profile is used by default. You can specify a different folder using the
--folder-name
or--folder-id
parameter.-
View the description of the CLI command to attach a file storage to a VM:
yc compute instance detach-filesystem --help
-
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 | | +----------------------+-------------------+------------+---------------+--------+-------------+
-
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.*.* | +----------------------+-------+---------------+---------+--------------+-------------+
-
Detach a file storage from a VM:
yc compute instance detach-filesystem \ --id <VM_ID> \ --filesystem-id <file_storage_ID>
Where:
-
--id
: VM ID.Instead of an ID, you can specify the VM name in the
--name
parameter. -
--filesystem-id
: File storage ID.Instead of an ID, you can specify the file storage name in the
--filesystem-name
parameter.
As a result, the command will output the updated VM configuration. The detached file storage must not be featured in the
filesystems
section of the resulting configuration. -
If you don't have Terraform, install it and configure the Yandex Cloud provider.
Set the
allow_stopping_for_update
parameter totrue
on your VM, if you have not done it yet.-
Open the Terraform configuration file and delete the fragment with the storage description:
Sample storage description in the VM configuration in Terraform
... resource "yandex_compute_instance" "vm-1" { name = "test-vm" platform_id = "standard-v3" zone = "ru-central1-a" filesystem { filesystem_id = "fhmaikp755gr********" } ...
-
Apply the changes:
-
In the terminal, change to the folder where you edited the configuration file.
-
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.
-
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.
-
Apply the configuration changes:
terraform apply
-
Confirm the changes: type
yes
in the terminal and press Enter.
-
You can check that the storage has been detached from the VM using the management console
or this CLI command:yc compute instance get <VM_name>
Use the detachFilesystem REST API method for the Instance resource or the InstanceService/DetachFilesystem gRPC API call.
- In the management console