Перенести диск в другую зону доступности
Диск создается в одной зоне доступности. Вы можете перенести его в другую зону с помощью снимка, а также с помощью специальной команды в консоли управления
Если диск подключен к ВМ, он будет перенесен при миграции ВМ. Мигрировать подключенные диски отдельно от ВМ нельзя.
Перенести диск с помощью создания снимка
Подготовьте диски
Снимок диска содержит только те данные, которые были записаны на диск в момент создания снимка. Если диск подключен к работающей виртуальной машине, то кеш приложений и операционной системы не попадет в снимок.
Чтобы обеспечить целостность данных снимка:
-
Остановите все операции записи на диск в приложениях.
-
Запишите кэш операционной системы на диск:
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.
Перенести диск с помощью специальной команды
Примечание
Если на диск активно ведется запись, его перенос может завершиться ошибкой. В таком случае остановите запись на диск или выключите виртуальную машину и запустите перенос еще раз.
Чтобы присоединить диск к виртуальной машине из другой зоны, перенесите его:
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для переноса диска:
yc compute disk relocate --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 | | | | +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
-
Выберите идентификатор (
ID
) нужного диска. -
Перенесите диск в другую зону доступности:
yc compute disk relocate --id <идентификатор_диска> \ --destination-zone-id <зона_доступности>
Где:
--id
— идентификатор диска, который нужно перенести.--destination-zone-id
— идентификатор зоны, в которую нужно перенести диск. Напримерru-central1-a
.
Если вы переносите диск в группе размещения, передайте ее идентификатор в параметре
--disk-placement-group-id
.
Примечание
Продолжительность операции переноса в другую зону доступности зависит от размера диска. Перенос диска размером 100 ГБ занимает приблизительно 10 минут.
В некоторых случаях при переносе в зону доступности ru-central1-d
процесс может занять больше времени.