Yandex Cloud
August 31, 2022

Создать ВМ со вторым диском из снапшота/имиджа

Это заключительная статья по взаимодействию между пятью компонентами: ВМ, имиджем, снапшотом, диском и зоной доступности.

Поехали!

Создание ВМ со вторым диском из снапшота:

export SG=$(yc vpc sg get cam-default --format=json | jq -r '.id')
export FOLDER_ID=$(yc config get folder-id)
export ZONE=ru-central1-a
export SUBNET_ID=$(yc vpc subnet get subnet-a --format json | jq -r '.id')
export SA=$(yc iam service-account get cam-instance-sa --format json | jq -r '.id')
export SNAP_ID=$(yc compute snapshot get first-snapshot --format=json | jq -r ".id")
export IMAGE_ID=$(yc compute image get first-image --format=json | jq -r ".id")
yc compute instance create \
--folder-id $FOLDER_ID \
--name cam-disk2 \
--description "Machine from snapshot" \
--hostname cam-disk2 \
--zone $ZONE \
--platform standard-v3 \
--create-boot-disk image-family=ubuntu-2004-lts,size=30,type=network-ssd,block-size=8K,auto-delete \
--create-disk snapshot-id=$SNAP_ID,size=60,type=network-ssd,block-size=4K,auto-delete \
--image-folder-id standard-images \
--memory 8 \
--cores 4 \
--core-fraction 100 \
--preemptible \
--network-settings type=standard \
--network-interface subnet-id=$SUBNET_ID,nat-ip-version=ipv4,security-group-ids=$SG \
--metadata serial-port-enable=1 \
--ssh-key ~/.ssh/id_rsa.pub \
--service-account-id $SA \
--async

Создание ВМ со вторым диском из имиджа:

export SG=$(yc vpc sg get cam-default --format=json | jq -r '.id')
export FOLDER_ID=$(yc config get folder-id)
export ZONE=ru-central1-a
export SUBNET_ID=$(yc vpc subnet get subnet-a --format json | jq -r '.id')
export SA=$(yc iam service-account get cam-instance-sa --format json | jq -r '.id')
export SNAP_ID=$(yc compute snapshot get first-snapshot --format=json | jq -r ".id")
export IMAGE_ID=$(yc compute image get first-image --format=json | jq -r ".id")
yc compute instance create \
--folder-id $FOLDER_ID \
--name cam-disk2 \
--description "Machine from image" \
--hostname cam-disk2 \
--zone $ZONE \
--platform standard-v3 \
--create-boot-disk image-family=ubuntu-2004-lts,size=30,type=network-ssd,block-size=8K,auto-delete \
--create-disk image-id=$IMAGE_ID,size=60,type=network-ssd,block-size=8K \
--image-folder-id standard-images \
--memory 8 \
--cores 4 \
--core-fraction 100 \
--preemptible \
--network-settings type=standard \
--network-interface subnet-id=$SUBNET_ID,nat-ip-version=ipv4,security-group-ids=$SG \
--metadata serial-port-enable=1 \
--ssh-key ~/.ssh/id_rsa.pub \
--service-account-id $SA \
--async

Подведём итоги!

1. Снапшоты и имиджи снимаются с диска.
2. Из снапшота/имиджа можно заново создать диск.
3. Из снапшота/имиджа можно создать новую ВМ.
4. Снапшоты и имиджи не привязаны к зоне доступности.
5. Снапшоты и имиджи можно прикреплять к ВМ в виде дополнительных дисков.
6. Имиджи не конвертируются в снапшоты, а снапшоты в имиджи.
7. Имиджи быстрее раскатываются, но дольше создаются и имеют больший размер.
8. При восстановлении ВМ из снапшота или имиджа можно указать:
8.1. Новый размер диска.
8.2. SSH ключ.
8.3. Новые значения CPU/RAM
8.4. ВМ можно сделать непрерываемой, если она была прерываемая. И наоборот.
9. Снапшоты и имиджи удобно использовать для анализа сбоя оригинальной ВМ. Для этого их подключают к другим, работающим ВМ.
10. Уменьшить размер диска, даже используя снапшоты/имиджи не получится.
11. ВМ и диск привязаны к одной из трёх зон доступности.