Moving a VM to another cloud
You cannot move a VM to another cloud; however, you can create an image from its boot disk and then create a VM from this image in another cloud.
-
Use a boot disk of your VM to create an image.
-
Get the boot disk image ID:
Management consoleCLIAPI- In the management console
, select the folder the disk image is in. - Select Compute Cloud.
- In the left-hand panel, select
Images. - Copy the value from the ID column of a relevant image.
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.Get a list of all the disks in the default folder:
yc compute image list
Result:
+----------------------+----------------+--------+-------------+--------+ | ID | NAME | FAMILY | PRODUCT IDS | STATUS | +----------------------+----------------+--------+-------------+--------+ | xc8n3spmksqm******** | original-image | | | READY | +----------------------+----------------+--------+-------------+--------+
Use the list REST API method for the Image resource or the ImageService/List gRPC API call.
- In the management console
-
Get an ID of the cloud hosting the folder with the image:
Management consoleCLIAPI- In the management console
, click the cloud in the list on the left. - On the Overview tab, copy the value from the ID field.
Retrieve a list of clouds with their IDs:
yc resource-manager cloud list
Result:
+----------------------+------------+--------------------------+ | ID | NAME | ORGANIZATION ID | +----------------------+------------+--------------------------+ | b1g66mft1vop******** | my-cloud-1 | | | b1gd129pp9ha******** | my-cloud-2 | | +----------------------+------------+--------------------------+
To get the list of clouds with IDs, use the list REST API method for the Cloud resource or the CloudService/List gRPC API call.
- In the management console
-
Add a user from the target cloud (where you want to move the VM instance) to the cloud hosting the folder with the source image.
-
Assign the target cloud user the
resource-manager.clouds.member
andcompute.images.user
roles for the cloud hosting the folder with the source image. -
Create a new image in the target cloud:
CLIAPIyc compute image create \ --name <new_image_name> \ --source-image-id <source_image_ID> \ --cloud-id <destination_cloud_ID> \ --folder-id <destination_folder_ID>
Use the create REST API method for the Image resource or the ImageService/Create gRPC API call. Specify the image ID in your request.
-
In the target cloud, create a VM from the image you created.