Written on 2026-10-09
Ввиду неиллюзорной угрозы потерять данные, решил забэкпить данные своих виртуалок в Яндекс Облаке. Да так, чтобы образа их лежали у меня дома, на жестком диске.
Вот краткая инструкция, как это можно сделать.
Корректно выключи исходную ВМ, чтобы получить согласованное состояние файлов и баз данных.
В консоли открой Compute Cloud → Диски и хранилища → нужный диск → Создать образ. Дождись завершения создания — после этого исходную ВМ можно снова запускать.
Создай временную ВМ с Ubuntu, SSH-доступом и внешним IP. Подключи к ней дополнительный диск, созданный из полученного образа. Её собственный загрузочный диск будет отдельным.
Подключись к временной ВМ и найди диск-копию:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS,SERIAL
Допустим, это /dev/vdb. Нужен весь диск, а не раздел /dev/vdb1. Его разделы должны оставаться непримонтированными; форматировать диск не нужно.
На своём компьютере, в терминале macOS или Linux, запусти:
ssh USER@HELPER_IP \
"bash -o pipefail -c 'sudo -n dd if=/dev/vdb bs=4M status=progress | gzip -1'" \
> vm-backup.img.gz.part &&
mv vm-backup.img.gz.part vm-backup.img.gz
Замени пользователя, IP и устройство на свои. Команда предполагает, что пользователь временной ВМ может выполнять sudo без пароля. Образ сразу скачивается на компьютер, поэтому хранить его целиком на временной ВМ не требуется.
Проверь скачанный архив:
gzip -t vm-backup.img.gz
При успешной проверке команда завершится без вывода. Для уверенности в восстановлении лучше также проверить загрузку копии в локальном гипервизоре.
Получится полный RAW-образ диска, сжатый gzip. Если у ВМ несколько дисков, сохрани каждый отдельно. После распаковки образ занимает полный размер исходного диска. Настройки самой ВМ — CPU, RAM, сеть, BIOS/UEFI — сохрани отдельно.
Если удобнее получить сразу QCOW2 через Object Storage, у Yandex Cloud есть скрипт yc-disk-export-tool: он создаёт вспомогательную ВМ, экспортирует диск в бакет, откуда файл можно скачать. Для одного бэкапа вариант по SSH требует меньше настройки.