До основного вмісту

Знімки та клонування 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

Прапорець --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

# Переконатися, що повний клон не залежить від джерела
qm config 103 | grep scsi0

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

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці