Создание снапшота виртуальной машины в Proxmox VE
Пошаговое создание снапшота виртуальной машины в Proxmox VE, проверка поддержки хранилища, откат и безопасное удаление.
Снапшот фиксирует состояние виртуальной машины на определённый момент времени. Его удобно создавать перед обновлением системы, изменением конфигурации или установкой нового программного обеспечения.
Снапшот не является полноценной резервной копией: он зависит от того же хранилища и не защищает от его отказа.
В этой инструкции рассматривается только создание снапшота VM, откат к нему и безопасное удаление.
Подходит для: Proxmox VE 8 и 9
Уровень сложности: начальный
Время выполнения: около 10 минут
Требуемый доступ: учётная запись с правами управления виртуальной машиной
Что будет рассмотрено
После выполнения инструкции можно будет:
- проверить поддержку снапшотов;
- создать снапшот через веб-интерфейс;
- создать снапшот через CLI;
- сохранить состояние оперативной памяти;
- выполнить откат;
- удалить снапшот;
- отличать снапшот от резервной копии.
Когда полезен снапшот
Снапшот удобно создавать перед:
- обновлением операционной системы;
- изменением сетевых параметров;
- установкой драйверов;
- изменением конфигурации приложения;
- миграцией данных;
- тестированием обновления;
- выполнением потенциально рискованных работ.
Снапшот особенно полезен, когда требуется быстро вернуть VM в предыдущее состояние.
Когда снапшот не подходит
Снапшот не заменяет резервную копию, потому что:
- хранится на том же хранилище;
- зависит от исходного виртуального диска;
- может быть потерян вместе с хранилищем;
- не предназначен для долгосрочного хранения;
- может снижать производительность при длительном использовании;
- не гарантирует прикладную согласованность базы данных.
Для защиты от отказа хранилища используйте отдельный backup.
Проверка типа хранилища
Откройте:
Datacenter → Storage
Выберите хранилище виртуального диска.
Проверьте его тип.
Поддержка снапшотов зависит от backend. Обычно снапшоты доступны для:
- ZFS;
- LVM-thin;
- Ceph RBD;
- qcow2 на файловом хранилище;
- некоторых других storage backend.
Обычный raw-диск на неподдерживаемом файловом хранилище может не поддерживать снапшоты.
Проверка через CLI
Покажите конфигурацию VM:
qm config VM_ID
Пример:
qm config 100
Проверьте диски:
qm config VM_ID |
grep -E '^(scsi|sata|virtio|ide)'
Покажите доступные хранилища:
pvesm status
Проверка существующих снапшотов
Через веб-интерфейс:
VM → Snapshots
Через CLI:
qm listsnapshot VM_ID
Пример:
qm listsnapshot 100
Если снапшотов нет, будет показано только текущее состояние.
Подготовка перед созданием
Перед снапшотом рекомендуется:
- Проверить состояние VM.
- Убедиться, что нет активного backup или миграции.
- Проверить свободное место.
- Завершить критические операции внутри гостевой ОС.
- Для базы данных выполнить штатный flush или дамп при необходимости.
- Убедиться, что QEMU Guest Agent работает.
Проверка состояния VM
qm status VM_ID
Пример:
qm status 100
Ожидаемый результат:
status: running
Проверка свободного места
pvesm status
Для ZFS:
zpool list
zfs list
Для LVM-thin:
lvs
Недостаток свободного места может привести к проблемам при росте снапшота.
Проверка QEMU Guest Agent
В настройках VM:
Options → QEMU Guest Agent
Должно быть:
Enabled
В гостевой Ubuntu или Debian:
systemctl status qemu-guest-agent --no-pager
Проверка с узла Proxmox:
qm agent VM_ID ping
Пример:
qm agent 100 ping
Создание снапшота через веб-интерфейс
Выберите виртуальную машину.
Откройте:
Snapshots
Нажмите:
Take Snapshot
Укажите имя:
before-upgrade
Добавьте описание:
Перед обновлением операционной системы
При необходимости включите:
Include RAM
Нажмите:
Take Snapshot
Дождитесь завершения задачи.
Правила имени снапшота
Используйте короткие имена:
before-upgrade
before-network-change
before-app-update
Лучше использовать:
- латинские буквы;
- цифры;
- дефисы;
- понятное назначение.
Не используйте дату как единственное описание. Назначение снапшота должно быть очевидным.
Параметр Include RAM
Если включить:
Include RAM
Proxmox сохранит состояние оперативной памяти вместе с дисками.
После отката VM сможет продолжить работу примерно с того же состояния.
Преимущества:
- сохраняется состояние работающих процессов;
- быстрее возвращается текущая сессия.
Недостатки:
- снапшот занимает больше места;
- создание может выполняться дольше;
- требуется дополнительное место на хранилище;
- сохранённое состояние памяти не всегда желательно для приложений.
Для большинства изменений конфигурации достаточно снапшота без RAM.
Создание снапшота через CLI
Базовая команда:
qm snapshot VM_ID SNAPSHOT_NAME
Пример:
qm snapshot 100 before-upgrade
С описанием:
qm snapshot 100 before-upgrade --description 'Перед обновлением операционной системы'
Снапшот с сохранением RAM
qm snapshot 100 before-upgrade --vmstate 1 --description 'Перед обновлением с сохранением RAM'
Параметр:
--vmstate 1
включает сохранение состояния памяти.
Проверка после создания
qm listsnapshot VM_ID
Пример:
qm listsnapshot 100
Проверьте:
- имя;
- дату;
- описание;
- текущее состояние;
- наличие сохранённой RAM при необходимости.
Выполнение изменений после снапшота
После создания снапшота можно выполнять запланированные работы.
Пример внутри Ubuntu:
sudo apt update
sudo apt upgrade
После изменений проверьте:
- загрузку системы;
- сеть;
- SSH;
- приложение;
- журнал ошибок;
- свободное место.
Когда нужен откат
Откат выполняют, если после изменения:
- VM перестала загружаться;
- пропала сеть;
- приложение не запускается;
- обновление нарушило совместимость;
- конфигурация повреждена;
- восстановление вручную займёт больше времени.
Перед откатом сохраните важные данные, созданные после снапшота, если они ещё нужны.
Что произойдёт при откате
Откат возвращает виртуальные диски к состоянию на момент снапшота.
Все изменения после него будут потеряны, включая:
- новые файлы;
- обновления;
- изменения конфигурации;
- данные приложения;
- новые записи базы данных.
Если снапшот содержит RAM, также восстанавливается сохранённое состояние памяти.
Откат через веб-интерфейс
Откройте:
VM → Snapshots
Выберите снапшот.
Нажмите:
Rollback
Подтвердите операцию.
Дождитесь завершения задачи.
После отката проверьте состояние VM и запустите её при необходимости.
Откат через CLI
qm rollback VM_ID SNAPSHOT_NAME
Пример:
qm rollback 100 before-upgrade
Проверьте:
qm status 100
qm listsnapshot 100
Проверка после отката
Откройте консоль VM.
Проверьте гостевую систему:
ip addr
ip route
Проверьте сервисы:
systemctl --failed
Проверьте приложение и его журнал.
Для веб-сервиса:
curl -I http://127.0.0.1
Удаление снапшота через веб-интерфейс
После успешной проверки обновления снапшот лучше удалить.
Откройте:
VM → Snapshots
Выберите снапшот.
Нажмите:
Remove
Подтвердите удаление.
Удаление может занять некоторое время в зависимости от backend и объёма изменений.
Удаление через CLI
qm delsnapshot VM_ID SNAPSHOT_NAME
Пример:
qm delsnapshot 100 before-upgrade
Проверьте:
qm listsnapshot 100
Почему снапшоты не стоит хранить долго
Длительное хранение снапшотов может:
- усложнять структуру дисков;
- увеличивать расход места;
- снижать производительность;
- усложнять обслуживание;
- увеличивать время удаления;
- повышать риск заполнения thin pool или ZFS pool.
Снапшот лучше использовать как краткосрочную точку возврата.
Рекомендуемый срок хранения
Для временного снапшота перед изменением:
от нескольких часов до нескольких дней
После успешной проверки изменений снапшот следует удалить.
Для долгосрочного хранения используйте резервные копии.
Снапшот и резервная копия
Снапшот
- создаётся быстро;
- хранится рядом с VM;
- удобен для быстрого отката;
- зависит от исходного хранилища;
- предназначен для краткосрочного использования.
Резервная копия
- создаётся дольше;
- может храниться отдельно;
- защищает от потери исходного storage;
- подходит для долгосрочного хранения;
- позволяет восстановить VM на другом узле.
Правильная схема использует и снапшоты, и резервные копии, но для разных задач.
Особенности баз данных
Снапшот диска не всегда гарантирует логическую согласованность базы данных.
Для PostgreSQL, MySQL или MariaDB желательно:
- выполнить штатный дамп;
- использовать механизм backup самой СУБД;
- остановить запись;
- применять согласованный snapshot;
- проверять восстановление.
QEMU Guest Agent улучшает согласованность файловой системы, но не заменяет прикладной backup базы данных.
Типичные проблемы
Кнопка Take Snapshot недоступна
Проверьте:
- тип хранилища;
- формат диска;
- права пользователя;
- наличие неподдерживаемого диска;
- состояние VM;
- активные задачи.
Проверьте конфигурацию:
qm config VM_ID
Ошибка feature 'snapshot' is not available
Хранилище или формат диска не поддерживает снапшоты.
Используйте поддерживаемый backend либо создайте резервную копию вместо снапшота.
Снапшот не создаётся из-за места
Проверьте:
pvesm status
df -h
Для LVM-thin:
lvs
Для ZFS:
zpool list
zfs list
Освободите место до повторной попытки.
После отката пропали данные
Это ожидаемо: все изменения после момента снапшота удаляются.
Перед откатом нужно сохранить новые данные отдельно.
Удаление снапшота выполняется долго
Причины:
- большой объём изменений;
- медленное хранилище;
- высокая нагрузка;
- особенности backend;
- цепочка нескольких снапшотов.
Не прерывайте задачу без необходимости.
VM зависла после отката с RAM
Сохранённое состояние памяти может оказаться нежелательным для конкретного приложения.
В таких случаях используйте снапшот без Include RAM.
Безопасный рабочий процесс
- Проверить свежую резервную копию.
- Проверить свободное место.
- Проверить QEMU Guest Agent.
- Создать снапшот с понятным именем.
- Выполнить изменение.
- Проверить загрузку, сеть и сервисы.
- При ошибке выполнить откат.
- При успехе удалить снапшот.
Быстрый набор команд
Показать снапшоты:
qm listsnapshot VM_ID
Создать:
qm snapshot VM_ID before-change --description 'Перед изменением конфигурации'
Создать с RAM:
qm snapshot VM_ID before-change --vmstate 1
Откатить:
qm rollback VM_ID before-change
Удалить:
qm delsnapshot VM_ID before-change
Итог
После выполнения инструкции:
- проверена поддержка снапшотов;
- создан снапшот через веб-интерфейс и CLI;
- рассмотрено сохранение RAM;
- выполнена проверка списка снапшотов;
- разобран безопасный откат;
- показано удаление;
- объяснена разница между снапшотом и резервной копией.
Снапшот удобен как краткосрочная точка возврата перед изменениями, но не должен заменять отдельную резервную копию.