Перенести виртуальную машину в другую зону доступности
При создании виртуальной машины можно выбрать, в какой из зон доступности Yandex Cloud она будет размещена.
Перенести существующую ВМ в другую зону доступности можно с помощью специальной команды в консоли управления
Важно
Чтобы контролировать ход миграции и избежать возможных сложностей при переносе, используйте для миграции снимки дисков или резервные копии из сервиса Cloud Backup. Так вы сами определяете, в какой момент выключать ВМ в исходной зоне доступности, и в какой момент она появится в конечной зоне доступности. ВМ в исходной зоне доступности может продолжать работать, пока вы не убедитесь, что созданная из снимка ВМ в новой зоне доступности работает корректно. Подробные рекомендации см. в разделе Миграция ресурсов в зону ru-central1-d.
Сейчас миграция ВМ и дисков с помощью команды 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 выберите ключ, которым вы хотите зашифровать диск. Чтобы создать новый ключ, нажмите кнопку Создать новый.
- В поле Сервисный аккаунт выберите сервисный аккаунт c ролью
kms.keys.encrypterDecrypter
на указанный ключ. Чтобы создать новый сервисный аккаунт, нажмите кнопку Создать новый.
Шифрование в Compute Cloud находится на стадии Preview. Чтобы получить доступ к функциональности, на странице создания ресурса в блоке Шифрование нажмите кнопку Запросить доступ или обратитесь в техническую поддержку
.Если деактивировать ключ, которым были зашифрованы диск или снимок, доступ к данным будет приостановлен, пока ключ не будет снова активирован.
Внимание
Если удалить ключ или его версию, которыми были зашифрованы диск или снимок, доступ к данным будет безвозвратно потерян. Подробнее см. Удаление версии ключа.
-
(Опционально) Подключите файловое хранилище:
-
В блоке Диски и файловые хранилища нажмите кнопку Добавить.
-
В открывшемся окне выберите Файловое хранилище и в появившемся списке выберите хранилище, которое требуется подключить.
-
Нажмите кнопку Добавить файловое хранилище.
-
-
-
В блоке Вычислительные ресурсы выберите одну из готовых конфигураций или создайте свою. Чтобы создать свою конфигурацию:
- Перейдите на вкладку Своя конфигурация.
- Выберите платформу.
- Укажите гарантированную долю и необходимое количество 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 к 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
процесс может занять больше времени.
Важно
В настоящий момент консоль управления позволяет переносить виртуальные машины только из зоны доступности ru-central1-c
. Для того чтобы перенести ВМ из других зон доступности, используйте CLI или снимки дисков.
-
В консоли управления
выберите каталог, которому принадлежит ВМ. -
Выберите сервис Compute Cloud.
-
На панели слева выберите
Виртуальные машины. -
В строке с нужной ВМ нажмите значок
→ Перенести в другую зону. В открывшемся окне:-
В поле Зона доступности выберите зону доступности, в которую необходимо перенести ВМ, например
ru-central1-d
. -
В секции Сетевые настройки для каждого сетевого интерфейса ВМ выполните настройки:
-
В поле Подсеть выберите подсеть, соответствующую выбранной зоне доступности.
-
В поле Публичный адрес выберите способ назначения публичного адреса:
Автоматически
— чтобы назначить случайный IP-адрес из пула адресов Yandex Cloud. В этом случае вы сможете включить защиту от DDoS-атак при помощи опции в дополнительных настройках.Список
— чтобы выбрать публичный IP-адрес из списка зарезервированных заранее статических адресов. Подробнее читайте в разделе Сделать динамический публичный IP-адрес статическим.Без адреса
— чтобы не назначать публичный IP-адрес.
-
В поле Группы безопасности выберите подходящие группы безопасности.
-
Чтобы настроить внутренний IP-адрес виртуальной машины и защиту от DDoS-атак, разверните блок Дополнительно и в поле Внутренний IPv4 адрес выберите способ назначения внутренних адресов:
Автоматически
— чтобы назначить случайный IP-адрес из пула адресов, доступных в выбранной подсети.Вручную
— чтобы вручную задать внутренний IP-адрес ВМ.
-
При необходимости включите опцию Защита от DDoS-атак. Опция доступна, если ранее в настройках публичного адреса вы выбрали автоматический способ назначения адреса.
-
-
Нажмите кнопку Начать перенос, чтобы запустить процесс переноса ВМ в другую зону доступности.
-
Если у вас еще нет интерфейса командной строки 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: {}