Перенести виртуальную машину в другую зону доступности
При создании виртуальной машины можно выбрать, в какой из зон доступности Yandex Cloud она будет размещена.
Перенести существующую ВМ в другую зону доступности можно с помощью специальной команды в консоли управления
Важно
Чтобы контролировать ход миграции и избежать возможных сложностей при переносе, используйте для миграции снимки дисков или резервные копии из сервиса Cloud Backup. Так вы сами определяете, в какой момент выключать ВМ в исходной зоне доступности, и в какой момент она появится в конечной зоне доступности. ВМ в исходной зоне доступности может продолжать работать, пока вы не убедитесь, что созданная из снимка ВМ в новой зоне доступности работает корректно. Подробные рекомендации см. в разделе Миграция ресурсов в другую зону.
Сейчас миграция ВМ и дисков с помощью команды relocate
возможна только в зону ru-central1-d
из любой другой зоны.
Важно
В зоне ru-central1-d
не поддерживаются ВМ на платформе Intel Broadwell. Чтобы перенести ВМ с такой платформы в зону ru-central1-d
, вы можете:
- Сделать снимок диска и создать из него новую ВМ в зоне
ru-central1-d
на другой платформе. - Остановить ВМ, изменить платформу и переместить ВМ командой
relocate
.
Перенести ВМ с помощью снимков дисков
Чтобы перенести ВМ в другую зону доступности с помощью снимков дисков, создайте копию этой ВМ в нужной зоне доступности и затем удалите исходную ВМ.
Создайте снимок каждого из дисков виртуальной машины
Подготовьте диски
Снимок диска содержит только те данные, которые были записаны на диск в момент создания снимка. Если диск подключен к работающей виртуальной машине, то кеш приложений и операционной системы не попадет в снимок.
Чтобы обеспечить целостность данных снимка:
-
Остановите все операции записи на диск в приложениях.
-
Запишите кэш операционной системы на диск:
sync
-
Заморозьте файловую систему:
sudo fsfreeze --freeze <точка_монтирования>
Где
--freeze
— параметр для заморозки файловой системы. Вместо<точка_монтирования>
укажите каталог, к которому подключена файловая система. Например:/mnt/vdc2
. -
Создайте снимок по инструкции ниже.
-
Разморозьте файловую систему:
sudo fsfreeze --unfreeze <точка_монтирования>
Где
--unfreeze
— параметр для разморозки файловой системы. Вместо<точка_монтирования>
укажите каталог, к которому подключена файловая система. Например:/mnt/vdc2
.
- Остановите виртуальную машину (см. раздел Остановить).
- Дождитесь, когда статус машины изменится на
STOPPED
.
Создайте снимки
Чтобы создать снимок диска:
-
В консоли управления
выберите каталог, в котором находится диск. -
Выберите сервис Compute Cloud.
-
На панели слева выберите
Диски. -
В строке с диском нажмите значок
и выберите Создать снимок. -
Введите имя снимка. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Если требуется, укажите произвольное текстовое описание снимка.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команд CLI для создания снимков:
yc compute snapshot create --help
-
Выберите диск, снимок которого необходимо создать. Получить список дисков в каталоге по умолчанию можно с помощью команды:
yc compute disk list
Результат:
+----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+ | ID | NAME | SIZE | ZONE | STATUS | INSTANCE IDS | PLACEMENT GROUP | DESCRIPTION | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+ | a7lqgbt0bb9s******** | first-disk | 20401094656 | ru-central1-a | READY | a7lcvu28njbh******** | | | | a7lv5j5hm1p1******** | second-disk | 21474836480 | ru-central1-a | READY | | | | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
-
Создайте снимок в каталоге по умолчанию:
yc compute snapshot create \ --name first-snapshot \ --description "my first snapshot via CLI" \ --disk-id fhm4aq4hvq5g********
В результате будет создан снимок диска с именем
first-snapshot
и описаниемmy first snapshot via CLI
.Требования к имени снимка:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурса
yandex_compute_snapshot
.Пример структуры конфигурационного файла:
resource "yandex_compute_snapshot" "snapshot-1" { name = "disk-snapshot" source_disk_id = "<идентификатор_диска>" }
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
. -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов.
После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
. -
- Получите список дисков с помощью метода REST API list для ресурса Disk или вызова gRPC API DiskService/List.
- Создайте снимок с помощью метода REST API create для ресурса Snapshot или вызова gRPC API SnapshotService/Create.
Аналогичным образом создайте снимки всех дисков.
Создайте виртуальную машину в другой зоне доступности с дисками из снимков
Чтобы создать виртуальную машину в другой зоне доступности с дисками из снимков:
-
В консоли управления
выберите каталог, в котором будет создана ВМ. -
В списке сервисов выберите Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
Нажмите кнопку Создать виртуальную машину.
-
В блоке Образ загрузочного диска:
- Перейдите на вкладку Пользовательский.
- Нажмите значок
и в открывшемся окне выберите Создать новый. - В поле Наполнение выберите
Снимок
и в списке ниже выберите нужный снимок диска. При необходимости воспользуйтесь фильтром. - Задайте имя создаваемого загрузочного диска.
- Выберите тип диска.
- Задайте нужные размер диска и размер блока.
- (Опционально) В поле Дополнительно включите опцию Удалять вместе с виртуальной машиной, если вы хотите автоматически удалять этот диск при удалении ВМ.
- Нажмите кнопку Добавить диск.
-
В блоке Расположение выберите зону доступности, в которой будет находиться ВМ.
-
Добавьте дополнительный диск:
- В блоке Диски и файловые хранилища нажмите кнопку Добавить.
- В открывшемся окне выберите Диск →
Создать новый
. - В поле Наполнение выберите
Снимок
. - Задайте имя создаваемого диска.
- Выберите тип диска.
- Задайте нужные размер диска и размер блока.
- (Опционально) В поле Дополнительно включите опцию Удалять вместе с виртуальной машиной, если вы хотите автоматически удалять этот диск при удалении ВМ.
- Нажмите кнопку Добавить диск.
-
(Опционально) Чтобы зашифровать загрузочный или дополнительный диск, в блоке Диски и файловые хранилища справа от имени диска нажмите значок
и задайте параметры шифрования для диска:- Выберите опцию Зашифрованный диск.
- В поле Ключ KMS выберите ключ, которым вы хотите зашифровать диск. Чтобы создать новый ключ, нажмите кнопку Создать новый.
Важно
Задать настройки шифрования можно только при создании диска. Шифрование диска нельзя будет отключить или изменить.
Если деактивировать ключ, которым были зашифрованы диск, снимок или образ, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
Внимание
Если удалить ключ или его версию, которыми были зашифрованы диск, снимок или образ, доступ к данным будет безвозвратно потерян. Подробнее см. Удаление версии ключа.
-
(Опционально) Подключите файловое хранилище:
-
В блоке Диски и файловые хранилища нажмите кнопку Добавить.
-
В открывшемся окне выберите Файловое хранилище и в появившемся списке выберите хранилище, которое требуется подключить.
-
Нажмите кнопку Добавить файловое хранилище.
-
-
-
В блоке Вычислительные ресурсы выберите одну из готовых конфигураций или создайте свою. Чтобы создать свою конфигурацию:
- Перейдите на вкладку Своя конфигурация.
- Выберите платформу.
- Укажите гарантированную долю и необходимое количество vCPU, а также объем RAM.
- При необходимости включите программно-ускоренную сеть.
- При необходимости сделайте ВМ прерываемой.
-
В блоке Сетевые настройки:
-
В поле Подсеть укажите идентификатор подсети в зоне доступности создаваемой ВМ или выберите облачную сеть из списка.
-
У каждой сети должна быть как минимум одна подсеть. Если подсети нет, создайте ее, выбрав Создать подсеть.
-
Если сети нет, нажмите Создать сеть и создайте ее:
- В открывшемся окне укажите имя сети и выберите каталог, в котором она будет создана.
- (Опционально) Выберите опцию Создать подсети, чтобы автоматически создать подсети во всех зонах доступности.
- Нажмите Создать сеть.
-
-
В поле Публичный адрес выберите способ назначения адреса:
Автоматически
— чтобы назначить случайный IP-адрес из пула адресов Yandex Cloud. В этом случае можно включить защиту от DDoS-атак при помощи опции ниже.Список
— чтобы выбрать публичный IP-адрес из списка зарезервированных заранее статических адресов. Подробнее читайте в разделе Сделать динамический публичный IP-адрес статическим.Без адреса
— чтобы не назначать публичный IP-адрес.
-
Выберите подходящие группы безопасности. Если оставить поле пустым, то виртуальной машине будет автоматически назначена группа безопасности по умолчанию.
-
Разверните блок Дополнительно и в поле Внутренний IPv4 адрес выберите способ назначения внутренних адресов:
Автоматически
— чтобы назначить случайный IP-адрес из пула адресов, доступных в выбранной подсети.Вручную
— чтобы задать внутренний IP-адрес ВМ вручную.- При необходимости включите опцию Защита от DDoS-атак. Опция доступна, если ранее в настройках публичного адреса вы выбрали автоматический способ назначения адреса.
-
(Опционально) Создайте записи для ВМ в зоне DNS:
- Разверните блок Настройки DNS для внутренних адресов и нажмите Добавить запись.
- Укажите зону, FQDN и время жизни записи. При указании FQDN для зоны доступна опция
Определять автоматически
.
Вы можете добавить несколько записей во внутренние зоны DNS. Подробнее см. Интеграция Cloud DNS с Compute Cloud. - Чтобы создать еще одну запись, нажмите кнопку Добавить запись.
Если вы хотите добавить на ВМ дополнительный сетевой интерфейс, нажмите кнопку Добавить сетевой интерфейс и в появившемся блоке настроек нового интерфейса повторите действия, описанные выше в этом шаге. На одну ВМ можно добавить до восьми сетевых интерфейсов.
-
-
В блоке Доступ:
-
Выберите Доступ по OS Login, чтобы подключаться к создаваемой ВМ и управлять доступом к ней с помощью OS Login в Yandex Cloud Organization.
Используя OS Login, вы сможете подключаться к ВМ по SSH-ключам и SSH-сертификатам с помощью стандартного SSH-клиента или интерфейса командной строки Yandex Cloud. OS Login позволяет ротировать SSH-ключи, используемые для доступа к ВМ, и является наиболее безопасным вариантом доступа.
-
Если доступ по OS Login вам не подходит, выберите вариант SSH-ключ и укажите данные для доступа к ВМ:
-
В поле Логин введите имя пользователя.
Внимание
Не используйте логин
root
или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте командуsudo
. -
В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.
Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:
- Нажмите кнопку Добавить ключ.
- Задайте имя SSH-ключа.
- Загрузите или вставьте содержимое открытого SSH-ключа. Пару SSH-ключей для подключения к ВМ по SSH необходимо создать самостоятельно.
- Нажмите кнопку Добавить.
SSH-ключ будет добавлен в ваш профиль пользователя организации.
Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя создаваемой виртуальной машины.
-
Если вы хотите добавить на ВМ одновременно нескольких пользователей с SSH-ключами, задайте данные этих пользователей в блоке Метаданные. С помощью метаданных вы также можете установить дополнительное ПО на ВМ при ее создании.
В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
-
-
В блоке Общая информация задайте имя ВМ:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Примечание
Имя виртуальной машины используется для генерации внутреннего FQDN единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
-
В блоке Дополнительно:
-
(Опционально) Выберите или создайте сервисный аккаунт. Использование сервисного аккаунта позволяет гибко настраивать права доступа к ресурсам.
-
(Опционально) Разрешите доступ к серийной консоли.
-
(Опционально) В блоке Резервное копирование включите опцию Подключить и выберите или создайте политику резервного копирования, чтобы автоматически создавать резервные копии ВМ с помощью сервиса Cloud Backup.
Подробнее см. в разделе Подключение виртуальных машин Compute Cloud и серверов Yandex BareMetal к Cloud Backup.
-
(Опционально) В блоке Мониторинг включите опцию Агент сбора метрик, чтобы настроить поставку метрик в Yandex Monitoring.
-
(Опционально) В блоке Размещение выберите группу размещения ВМ.
-
-
Нажмите кнопку Создать ВМ.
Виртуальная машина появится в списке. При создании виртуальной машине назначаются IP-адрес и имя хоста (FQDN).
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания виртуальной машины:
yc compute instance create --help
-
Подготовьте снимки нужных дисков, см. раздел Создать снимок диска.
-
Получите список снимков в каталоге по умолчанию:
yc compute snapshot list
Результат:
+----------------------+-----------------+----------------------+--------+----------------------------+ | ID | NAME | PRODUCT IDS | STATUS | DESCRIPTION | +----------------------+-----------------+----------------------+--------+----------------------------+ | fd8rlt1u2rf0l******* | first-snapshot | f2ecl5vhsftd******** | READY | my first snapshot via CLI | | fhmolt1u2rf0******** | second-snapshot | f2eclmol5lps******** | READY | my second snapshot via CLI | +----------------------+-----------------+----------------------+--------+----------------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужных снимков. -
Создайте виртуальную машину в каталоге по умолчанию:
yc compute instance create \ --name first-instance \ --zone ru-central1-a \ --public-ip \ --create-boot-disk snapshot-name=first-snapshot \ --create-disk snapshot-name=second-snapshot \ --ssh-key ~/.ssh/id_ed25519.pub
Данная команда создаст виртуальную машину именем
first-instance
в зонеru-central1-a
, с публичным IP и дисками из снимков.Примечание
Имя виртуальной машины используется для генерации внутреннего FQDN единожды — при создании ВМ. Если для вас важен внутренний FQDN, учитывайте это и задавайте нужное имя ВМ при создании.
Чтобы создать виртуальную машину без публичного IP, исключите флаг
--public-ip
.Если вы хотите добавить на ВМ несколько сетевых интерфейсов, задайте параметр
--network-interface
необходимое количество раз. На одну ВМ можно добавить до восьми сетевых интерфейсов.
Воспользуйтесь методом REST API create для ресурса Instance или вызовом gRPC API InstanceService/Create.
Удалите исходную виртуальную машину
Чтобы удалить исходную виртуальную машину:
-
В консоли управления
выберите каталог, которому принадлежит ВМ. -
Выберите сервис Compute Cloud.
-
В строке с нужной ВМ нажмите значок
→ Удалить.Чтобы удалить несколько виртуальных машин, выделите нужные ВМ в списке и нажмите кнопку Удалить в нижней части экрана.
-
В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для удаления ВМ:
yc compute instance delete --help
-
Получите список ВМ в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+-----------------+---------------+---------+----------------------+ | ID | NAME | ZONE ID | STATUS | DESCRIPTION | +----------------------+-----------------+---------------+---------+----------------------+ | fhm0b28lgfp4******** | first-instance | ru-central1-a | RUNNING | my first vm via CLI | | fhm9gk85nj7g******** | second-instance | ru-central1-a | RUNNING | my second vm via CLI | +----------------------+-----------------+---------------+---------+----------------------+
-
Выберите идентификатор (
ID
) или имя (NAME
) нужной машины, напримерfirst-instance
. -
Удалите ВМ:
yc compute instance delete first-instance
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Если вы создавали ВМ с помощью Terraform, вы можете удалить ее:
-
В командной строке перейдите в папку, где расположен конфигурационный файл Terraform.
-
Удалите ресурсы с помощью команды:
terraform destroy
Внимание
Terraform удалит все ресурсы, созданные в текущей конфигурации: кластеры, сети, подсети, ВМ и т. д.
-
Введите слово
yes
и нажмите Enter.
Воспользуйтесь методом REST API delete для ресурса Instance или вызовом gRPC API InstanceService/Delete.
Перенести ВМ с помощью специальной команды
При переносе в другую зону доступности с помощью консоли управления или CLI у ВМ сохранятся идентификатор и метаданные. Вместе с ВМ в новую зону доступности будут перенесены и все подключенные к ней диски.
Примечание
Продолжительность операции переноса в другую зону доступности зависит от размера дисков виртуальной машины. Перенос диска размером 100 ГБ занимает приблизительно 10 минут.
В некоторых случаях при переносе в зону доступности ru-central1-d
процесс может занять больше времени.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для переноса виртуальной машины в другую зону доступности:
yc compute instance relocate --help
-
Получите список всех подсетей в каталоге по умолчанию:
yc vpc subnet list
Результат:
+----------------------+-----------------------+----------------------+----------------+---------------+-------------------+ | ID | NAME | NETWORK ID | ROUTE TABLE ID | ZONE | RANGE | +----------------------+-----------------------+----------------------+----------------+---------------+-------------------+ | bucqps2lt75g******** | subnet-ru-central1-a1 | c64pv6m0aqq6******** | | ru-central1-a | [192.168.11.0/24] | | e2lrucutusnd******** | subnet-ru-central1-a2 | c64pv6m0aqq6******** | | ru-central1-a | [192.168.12.0/24] | | e2lv9c6aek1d******** | subnet-ru-central1-a3 | c64pv6m0aqq6******** | | ru-central1-a | [192.168.13.0/24] | | bltign9kcffv******** | default-ru-central1-b | c64pv6m0aqq6******** | | ru-central1-b | [192.168.1.0/24] | +----------------------+-----------------------+----------------------+----------------+---------------+-------------------+
-
Получите список всех групп безопасности в каталоге по умолчанию:
yc vpc sg list
Результат:
+----------------------+---------------------------------+--------------------------------+----------------------+ | ID | NAME | DESCRIPTION | NETWORK-ID | +----------------------+---------------------------------+--------------------------------+----------------------+ | c646ev94tb6k******** | my-sg-group | | c64pv6m0aqq6******** | | c64r84tbt32j******** | default-sg-c64pv6m0aqq6******** | Default security group for | c64pv6m0aqq6******** | | | | network | | +----------------------+---------------------------------+--------------------------------+----------------------+
-
Получите список всех виртуальных машин в каталоге по умолчанию:
yc compute instance list
Результат:
+----------------------+---------+---------------+---------+---------------+-------------+ | ID | NAME | ZONE ID | STATUS | EXTERNAL IP | INTERNAL IP | +----------------------+---------+---------------+---------+---------------+-------------+ | a7lh48f5jvlk******** | my-vm-1 | ru-central1-a | RUNNING | | 192.168.0.7 | | epdsj30mndgj******** | my-vm-2 | ru-central1-b | RUNNING | | 192.168.1.7 | +----------------------+---------+---------------+---------+---------------+-------------+
-
Получите список сетевых интерфейсов нужной ВМ, указав ее идентификатор:
yc compute instance get <идентификатор_ВМ>
Результат:
... network_interfaces: - index: "0" mac_address: d0:0d:24:**:**:** subnet_id: bucqps2lt75g******** primary_v4_address: address: 192.168.11.23 one_to_one_nat: address: 158.160.**.*** ip_version: IPV4 - index: "1" mac_address: d0:1d:24:**:**:** subnet_id: e2lrucutusnd******** primary_v4_address: address: 192.168.12.32 - index: "2" mac_address: d0:2d:24:**:**:** subnet_id: e2lv9c6aek1d******** primary_v4_address: address: 192.168.13.26 ...
-
Перенесите нужную виртуальную машину в другую зону доступности:
yc compute instance relocate <идентификатор_ВМ> \ --destination-zone-id <идентификатор_зоны_доступности> \ --network-interface subnet-id=<идентификатор_подсети>,security-group-ids=<идентификатор_группы_безопасности>
Где:
-
<идентификатор_ВМ>
— идентификатор ВМ, которую требуется перенести в другую зону доступности. -
--destination-zone-id
— идентификатор зоны доступности, в которую требуется перенести ВМ. -
--network-interface
— настройки сетевого интерфейса ВМ:subnet-id
— идентификатор подсети, соответствующей зоне доступности, в которую требуется перенести ВМ.security-group-ids
— идентификатор группы безопасности, которую требуется привязать к переносимой ВМ. К одной ВМ можно привязать одновременно несколько групп безопасности, в этом случае передайте их идентификаторы через запятую в формате[id1,id2]
.
Если у ВМ несколько сетевых интерфейсов, задайте параметр
--network-interface
необходимое количество раз (для каждого сетевого интерфейса).
Подробнее о команде
yc compute instance relocate
см. в справочнике CLI.Пример:
yc compute instance relocate a7lh48f5jvlk******** \ --destination-zone-id ru-central1-b \ --network-interface \ subnet-id=bltign9kcffv********,security-group-ids=c646ev94tb6k********
В этом примере ВМ
my-vm-1
переносится из зоны доступностиru-central1-a
в зону доступностиru-central1-b
.Результат:
done (3m15s) id: a7lh48f5jvlk******** folder_id: aoeg2e07onia******** created_at: "2023-10-13T19:47:40Z" name: my-vm-1 zone_id: ru-central1-b platform_id: standard-v3 resources: memory: "2147483648" cores: "2" core_fraction: "100" status: RUNNING metadata_options: gce_http_endpoint: ENABLED aws_v1_http_endpoint: ENABLED gce_http_token: ENABLED aws_v1_http_token: DISABLED boot_disk: mode: READ_WRITE device_name: a7lp7jpslu59******** auto_delete: true disk_id: a7lp7jpslu59******** network_interfaces: - index: "0" mac_address: d0:0d:11:**:**:** subnet_id: bltign9kcffv******** primary_v4_address: address: 192.168.1.17 security_group_ids: - c646ev94tb6k******** gpu_settings: {} fqdn: my-vm-1.ru-central1.internal scheduling_policy: {} network_settings: type: STANDARD placement_policy: {}
Если вы переносите ВМ с диском в группе размещения, используйте команду:
yc compute instance relocate <идентификатор_ВМ> \ --destination-zone-id <идентификатор_зоны_доступности> \ --network-interface subnet-id=<идентификатор_подсети>,security-group-ids=<идентификатор_группы_безопасности> \ --boot-disk-placement-group-id <идентификатор_группы_размещения_дисков> \ --boot-disk-placement-group-partition <номер_раздела> \ --secondary-disk-placement disk-name=<имя_диска>,disk-placement-group-id=<идентификатор_группы_размещения_дисков>,disk-placement-group-partition=<номер_раздела>
Где:
-
--boot-disk-placement-group-id
— идентификатор группы размещения дисков. -
--boot-disk-placement-group-partition
— номер раздела в группе размещения дисков со стратегией размещения разделами. -
--secondary-disk-placement
— политика размещения для дополнительных дисков. Параметры:disk-name
— имя диска.disk-placement-group-id
— идентификатор группы размещения дисков, в которую необходимо поместить диск.disk-placement-group-partition
— номер раздела в группе размещения дисков.
Подробнее о команде
yc compute instance relocate
см. в справочнике CLI. -
Обратите внимание, что при подключении сетевых интерфейсов ВМ к новым подсетям изменится адресация. Если для сетевых интерфейсов ВМ требуется указать внутренние IP-адреса, используйте свойство ipv4-address=<внутренний_IP-адрес>
, если публичные IP-адреса — свойство nat-address=<публичный_IP-адрес>
параметра network-interface
. В остальном установка параметров сетевых интерфейсов при переносе ВМ в другую зону доступности аналогична установке таких параметров при создании ВМ.
Примечание
Если на диски ВМ активно ведется запись, их перенос может завершиться ошибкой. В таком случае остановите запись на диски или выключите виртуальную машину и повторно запустите перенос.
Примеры
Перенос ВМ в другую зону
В этом примере ВМ my-vm-1
переносится из зоны доступности ru-central1-a
в зону доступности ru-central1-d
.
yc compute instance relocate a7lh48f5jvlk******** \
--destination-zone-id ru-central1-d \
--network-interface \
subnet-id=bltign9kcffv********,security-group-ids=c646ev94tb6k********
Результат:
done (3m15s)
id: a7lh48f5jvlk********
folder_id: aoeg2e07onia********
created_at: "2023-10-13T19:47:40Z"
name: my-vm-1
zone_id: ru-central1-d
platform_id: standard-v3
resources:
memory: "2147483648"
cores: "2"
core_fraction: "100"
status: RUNNING
metadata_options:
gce_http_endpoint: ENABLED
aws_v1_http_endpoint: ENABLED
gce_http_token: ENABLED
aws_v1_http_token: DISABLED
boot_disk:
mode: READ_WRITE
device_name: a7lp7jpslu59********
auto_delete: true
disk_id: a7lp7jpslu59********
network_interfaces:
- index: "0"
mac_address: d0:0d:11:**:**:**
subnet_id: bltign9kcffv********
primary_v4_address:
address: 192.168.1.17
security_group_ids:
- c646ev94tb6k********
gpu_settings: {}
fqdn: my-vm-1.ru-central1.internal
scheduling_policy: {}
network_settings:
type: STANDARD
placement_policy: {}
Перенос ВМ с дисками в группе размещения
В этом примере ВМ my-vm-1
с двумя дисками в группе размещения переносится из зоны доступности ru-central1-b
в зону доступности ru-central1-d
.
yc compute instance relocate epd6qtn128k1******** \
--destination-zone-id ru-central1-d \
--network-interface \
subnet-id=fl8glc5v0lqj********,security-group-ids=enp1gjh3q042******** \
--boot-disk-placement-group-id fv4pfmor782v******** \
--boot-disk-placement-group-partition 1 \
--secondary-disk-placement \
disk-name=disk-two,fv4pfmor782v********,disk-placement-group-partition=2
Результат:
done (9m0s)
id: epd6qtn128k1********
folder_id: b1gmit33ngp3********
created_at: "2023-12-07T19:30:20Z"
name: my-vm-1
zone_id: ru-central1-d
platform_id: standard-v3
resources:
memory: "2147483648"
cores: "2"
core_fraction: "100"
status: RUNNING
metadata_options:
gce_http_endpoint: ENABLED
aws_v1_http_endpoint: ENABLED
gce_http_token: ENABLED
aws_v1_http_token: DISABLED
boot_disk:
mode: READ_WRITE
device_name: epdeqrm6g38j********
auto_delete: true
disk_id: epdeqrm6g38j********
secondary_disks:
- mode: READ_WRITE
device_name: epdi54snn7t6********
disk_id: epdi54snn7t6********
network_interfaces:
- index: "0"
mac_address: d0:0d:6d:76:e1:12
subnet_id: fl8glc5v0lqj********
primary_v4_address:
address: 10.130.0.12
security_group_ids:
- enp1gjh3q042********
gpu_settings: {}
fqdn: my-vm-1.ru-central1.internal
scheduling_policy: {}
network_settings:
type: STANDARD
placement_policy: {}