К основному содержимому

Снапшоты и клонирование VM в Proxmox VE

Proxmox VE · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «Снапшоты и клонирование VM в Proxmox VE»

Снапшоты и клонирование — одни из самых мощных возможностей Proxmox VE. Снапшот позволяет мгновенно зафиксировать состояние VM и вернуться к нему в любой момент, а клонирование — быстро создать идентичную копию.

Снапшоты VM

Требования: Мгновенные снапшоты доступны только на хранилищах, поддерживающих снапшоты: ZFS, LVM-Thin, Ceph/RBD. На Directory-хранилищах доступны только qcow2-снапшоты.
# Создать снапшот (VM может быть запущена)
qm snapshot 100 pre-update --description "Перед обновлением системы" --vmstate 1

# Список снапшотов
qm listsnapshot 100

# Откатить VM к снапшоту
qm rollback 100 pre-update

# Удалить снапшот
qm delsnapshot 100 pre-update
Учебный макет: Просмотр снапшотов VM. Выделены раздел, поле и следующий шаг.
Учебный макет. Расположение элементов зависит от версии панели. Данные приведены для примера.

Флаг --vmstate 1 сохраняет оперативную память VM — это позволяет восстановить её точно в работающем состоянии.

Клонирование VM

Тип клонаОписаниеВремяЗависимость от источника
Linked CloneИспользует исходный диск как базу (CoW)СекундыДа (нельзя удалить источник)
Full CloneПолная независимая копияМинутыНет
# Полный клон в новый VM с ID 101
qm clone 100 101 --name ubuntu-copy --full 1

# Связанный клон (источник должен быть шаблоном)
qm clone 100 102 --name ubuntu-linked

# Клон на другое хранилище
qm clone 100 103 --name ubuntu-ceph --full 1 --storage ceph-pool

Создание шаблона VM

Шаблон — это "замороженная" VM, из которой создаются связанные клоны. Позволяет развернуть новую VM за секунды:

# Подготовить VM к использованию как шаблон
# 1. Установить cloud-init (для Linux)
apt install cloud-init -y

# 2. Очистить уникальные данные
cloud-init clean
truncate -s 0 /etc/machine-id

# 3. На хосте Proxmox — преобразовать VM в шаблон
qm template 100

# 4. Теперь создавать клоны мгновенно
qm clone 100 201 --name new-vm --full 0

Cloud-Init интеграция

Cloud-Init позволяет автоматически настраивать VM при первом запуске (hostname, SSH-ключи, сетевые настройки):

# Добавить Cloud-Init диск к VM
qm set 100 --ide2 local-lvm:cloudinit

# Настроить параметры Cloud-Init
qm set 100   --ciuser ubuntu   --cipassword SecurePass   --sshkey ~/.ssh/id_rsa.pub   --ipconfig0 ip=dhcp

# Пересоздать Cloud-Init образ
qm cloudinit dump 100 network
После создания шаблона VM нельзя запустить напрямую. Только клонировать. Убедитесь, что VM правильно настроена перед конвертацией.

Ошибки снапшотов и клонирования

Три ошибки, с которыми чаще всего сталкиваются при работе со снапшотами и клонами — все три связаны не с самой операцией, а с состоянием, которое осталось от предыдущей незавершённой попытки.

TASK ERROR: unable to create image: rbd: create error: (17) File exists
cannot lock file '/var/lock/qemu-server/100.conf' - got timeout
TASK ERROR: zfs error: cannot destroy 'tank/vm-100-disk-0@pre-update': snapshot has dependent clones
  • rbd: create error: (17) File exists: предыдущая неудачная попытка клонирования на Ceph оставила частично созданный образ. Удалите его вручную через rbd rm перед повторной попыткой.
  • cannot lock file ... got timeout: над VM уже выполняется другая операция (бэкап, миграция, другой снапшот). Дождитесь её завершения — параллельные операции с конфигурацией VM запрещены намеренно.
  • snapshot has dependent clones: у ZFS-снапшота есть linked clone — сначала выполните qm clone с флагом --full 1 для превращения зависимого клона в независимый, затем удаляйте снапшот.

Во всех трёх случаях полезно сначала посмотреть список активных задач и снапшотов той же VM, прежде чем повторять команду — повторный запуск на грязном состоянии обычно только добавляет новую ошибку поверх старой.

Когда снапшоты и клоны не подходят

Обе технологии экономят время, но не заменяют другие механизмы защиты данных.

  • Снапшот без --vmstate 1 — это crash-consistent копия диска, а не гарантия целостности данных приложения; для СУБД дополнительно используйте штатный дамп.
  • Linked Clone нельзя рассматривать как независимую копию: источник (шаблон) нельзя удалить или существенно изменить, пока есть хотя бы один связанный клон.
  • Снапшот — не резервная копия: он живёт на том же хранилище и том же хосте, что и сама VM, и пропадает вместе с ней при отказе диска или хоста.

Проверка результата

После создания снапшота или клона убедитесь, что они действительно рабочие.

# Список снапшотов и их размер
qm listsnapshot 100

# После отката — проверить состояние конфигурации и запуск
qm rollback 100 pre-update
qm start 100
qm status 100

# Убедиться, что full-клон не зависит от источника
qm config 103 | grep scsi0

Если после отката VM запускается и работает штатно, а у полного клона диск указывает на отдельное хранилище — результат корректный. Про создание шаблонов и Cloud-Init читайте в статье шаблоны и Cloud-Init в Proxmox.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке