Yandex Cloud
August 25, 2022

Создание бекапа для ВМ

После того как мы настроили ВМ необходимо её забекапировать на всякий случай. Для создания бекапа в облаке существуют два инструмента: снапшот и образ.

Разница между снапшотом и имиджем в размере. Образ больше весит и делается дольше. Но он быстрее раскатывается. Мы создадим и имидж, и снапшот. Для ВМ, которую мы подготовили ранее: https://teletype.in/@cameda/7eoIHj2pvv0

И снапшот, и имидж создаются не для ВМ, а для диска этой ВМ. Поэтому нам потребуется идентификатор диска.

yc compute instance get srv-1 --format=json | jq -r '.boot_disk' | grep disk_id

Выполнять операции бекапирования лучше на выключенной ВМ, чтобы не было никаких изменений в файловой системе и память была очищена. Поэтому ВМ предварительно выключаем.

yc compute instance stop fhmfmvmvs62t20ueehuh

Создадим снапшот:

yc compute snapshot create \
    --name first-snapshot \
    --description "my SuperVM with user+prog+pass" \
    --disk-id fhm6cvqjmtle9uuhsk7j \
    --async

Создадим образ:

yc compute image create \
    --name first-image \
    --description "my SuperVM with user+prog+pass" \
    --source-disk-id fhm6cvqjmtle9uuhsk7j \
    --async

По снапшотам и образам можно посмотреть разную полезную информацию:

yc compute snapshot list
yc compute snapshot get fd8g935utkmhjm4c3990
yc compute snapshot list-operations fd8g935utkmhjm4c3990
yc compute image list
yc compute image get fd8gh1a629f446saf3p4
yc compute image list-operations fd8gh1a629f446saf3p4

После того как мы создали образ/снапшот из можно восстановить в любой зоне доступности. Именно так и осуществляется перенос ВМ между разными зонами.

Создать новый диск на основе снапшота:

export FOLDER_ID=$(yc config get folder-id)
yc compute disk create \
   --folder-id $FOLDER_ID \
   --zone ru-central1-c \
   --name first-snap-disk \
   --type network-hdd \
   --block-size 4K \
   --source-snapshot-id fd8g935utkmhjm4c3990 \
   --description "my SuperVM with user+prog+pass" \
   --async

Создать новый диск на основе образа:

yc compute disk create \
   --folder-id $FOLDER_ID \
   --zone ru-central1-b \
   --name first-image-disk \
   --type network-hdd \
   --block-size 4K \
   --source-image-id fd8gh1a629f446saf3p4 \
   --description "my SuperVM with user+prog+pass" \
   --async

Создадим два диска в зонах ru-central1-b и ru-central1-c. Напомню, что изначальный диск находится в зоне ru-central1-a. Также при переносе можно выбрать другой тип диска, чем тот, что был ранее.

Таким образом становится понятно, что образы/снапшоты - это не только удобный инструмент для бекапирования ВМ, но также служит и для переноса ВМ между зонами доступности.

Добавим labels:

yc compute snapshot add-labels --id fd8g935utkmhjm4c3990 --labels snap=supervm --async
yc compute image add-labels --id fd8gh1a629f446saf3p4 --labels img=supervm --async

Удалить снапшот/имидж:

yc compute snapshot delete fd8g935utkmhjm4c3990
yc compute image delete fd8gh1a629f446saf3p4

Полезные ссылки:

Снимки, что это: https://cloud.yandex.ru/docs/compute/concepts/snapshot
Создать снимок: https://cloud.yandex.ru/docs/compute/operations/disk-control/create-snapshot

Про перенос ВМ в другую зону доступности: https://cloud.yandex.ru/docs/compute/operations/vm-control/vm-change-zone