ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Виртуализация и хост-ноды

Резервное копирование и снапшоты в Proxmox VE: vzdump, задания по расписанию и qmrestore

6 шагов 15 мин чтения 2 просмотров 0
Содержание

Если вы держите виртуальные машины или продаёте VPS на выделенном сервере, резервное копирование и снапшоты в Proxmox VE нужно продумать заранее: удалённые файлы, неудачное обновление или взлом восстанавливаются только из них. В статье — три режима vzdump, задания резервного копирования по расписанию, восстановление через qmrestore и pct restore, разница между снапшотом и бэкапом, роль Proxmox Backup Server и расчёт места. Подходит для Proxmox VE 7.x/8.x, команды выполняются на хосте от root.

Шаг 1: Проверка хранилищ Proxmox и места под бэкапы

Стандартное хранилище local (/var/lib/vz) может хранить бэкапы, а local-lvm — только диски ВМ. Сначала посмотрите свободное место и список гостей:

pvesm status
df -h /var/lib/vz
qm list
pct list
ls -lh /var/lib/vz/dump/
Бэкап на том же диске, что и ВМ, спасает от ошибок, но не от отказа диска. Для важных данных используйте отдельный диск, NFS/CIFS или удалённый Proxmox Backup Server.

Шаг 2: Ручной бэкап через vzdump (режимы snapshot, suspend, stop)

vzdump — встроенный инструмент резервного копирования. Режимы отличаются так:

  • snapshot — копирование «на лету» без простоя, самый популярный вариант. С включённым QEMU Guest Agent файловая система кратко замораживается для лучшей целостности.
  • suspend — в основном для контейнеров: данные синхронизируются, затем гость ненадолго приостанавливается.
  • stop — гость выключается, копируется и снова запускается; максимальная целостность, но с простоем.
# one VM, live, zstd compressed, to storage "local"
vzdump 100 --mode snapshot --storage local --compress zstd

# one container, suspend mode
vzdump 101 --mode suspend --storage local --compress zstd

# stop mode: most consistent, guest is shut down during backup
vzdump 102 --mode stop --storage local --compress zstd

# all guests on this node, with a note
vzdump --all --mode snapshot --storage local --compress zstd --notes-template '{{guestname}} manual'

Сжатие zstd быстрое и эффективное. Файлы сохраняются в /var/lib/vz/dump/: .vma.zst для ВМ и .tar.zst для контейнеров.

Шаг 3: Задание резервного копирования по расписанию и политика хранения

В веб-интерфейсе: Датацентр → Резервное копирование → Добавить. Выберите узел, хранилище, расписание, режим и сжатие, а на вкладке хранения укажите число копий. То же самое из командной строки:

# every day 02:30, all guests, keep 7 daily + 4 weekly
pvesh create /cluster/backup --schedule '02:30' --all 1 \
  --storage local --mode snapshot --compress zstd \
  --prune-backups keep-daily=7,keep-weekly=4 --enabled 1

pvesh get /cluster/backup
# preview when a schedule will run
systemd-analyze calendar '02:30'

prune-backups задаёт автоочистку: keep-daily=7,keep-weekly=4 хранит по одной копии в день за 7 дней и по одной в неделю за 4 недели. Без политики хранения бэкапы копятся, пока диск не заполнится.

Шаг 4: Восстановление через qmrestore и pct restore

Безопаснее сначала восстановить в новый VM ID, проверить данные и только потом переключаться. Чтобы перезаписать существующую ВМ, остановите её и добавьте --force 1:

# list backup files on a storage
pvesm list local --content backup

# restore a VM backup to a NEW id 120 on local-lvm
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2026_10_01-02_30_00.vma.zst 120 --storage local-lvm

# overwrite the existing VM 100 (VM must be stopped)
qm stop 100
qmrestore /var/lib/vz/dump/vzdump-qemu-100-2026_10_01-02_30_00.vma.zst 100 --force 1

# restore a container backup
pct restore 121 /var/lib/vz/dump/vzdump-lxc-101-2026_10_01-02_30_00.tar.zst --storage local-lvm
ВМ, восстановленная под новым ID, получает те же MAC и IP, что и оригинал. Одновременный запуск вызовет конфликт IP — смените сетевую карту или держите оригинал выключенным.

Шаг 5: Создание и откат снапшотов Proxmox (снапшот против бэкапа)

Снапшот фиксирует состояние диска (и при желании памяти) на момент времени; создание и откат занимают секунды, поэтому это идеальная страховка перед обновлением ОС или правкой конфигурации. Но снапшот лежит в том же хранилище, пропадает вместе с ним при отказе диска, а при долгом хранении растёт и замедляет диск. Итог: снапшоты — для быстрого отката, бэкапы — для настоящей защиты данных.

# take a snapshot before an upgrade (add --vmstate 1 to include RAM)
qm snapshot 100 before_upgrade --description "before apt full-upgrade"
qm listsnapshot 100

# roll back if something breaks
qm rollback 100 before_upgrade

# delete it when no longer needed
qm delsnapshot 100 before_upgrade

# containers use pct
pct snapshot 101 before_upgrade
pct rollback 101 before_upgrade

Снапшоты требуют поддерживающего хранилища: LVM-thin, ZFS, Ceph или qcow2 на каталоговом хранилище. Обычный LVM и raw-образы их не поддерживают.

Шаг 6: Proxmox Backup Server и планирование места

Proxmox Backup Server (PBS) — официальный сервер резервного копирования с инкрементальными бэкапами, дедупликацией, шифрованием и проверкой целостности. Ежедневный бэкап передаёт только изменённые блоки, поэтому места и времени нужно гораздо меньше, чем для полных архивов vzdump. Обычно PBS ставят на другой сервер или в другой дата-центр и подключают в PVE через Датацентр → Хранилище → Добавить → Proxmox Backup Server, указав адрес, datastore, пользователя и отпечаток.

# after adding the PBS storage in Datacenter -> Storage, check it
pvesm status
# back up to it like any other storage (named "pbs1" here)
vzdump 100 --mode snapshot --storage pbs1

Грубая оценка для vzdump: занятые данные гостя × коэффициент сжатия (у zstd обычно 0,4–0,7) × число хранимых копий плюс 20% запаса. Десять ВМ по 20 ГБ данных с 7 копиями требуют около 10 × 20 × 0,6 × 7 ≈ 840 ГБ. С дедупликацией PBS обычно заметно меньше.

Частые вопросы

Бэкап в режиме snapshot пишет «guest-agent not running»

В настройках ВМ включён QEMU Guest Agent, но внутри гостя агент не запущен. Установите и запустите qemu-guest-agent (apt в Debian/Ubuntu, dnf в CentOS/Rocky/AlmaLinux) или отключите опцию в Proxmox.

Бэкапы заполнили хранилище local

Настройте разумную политику хранения в задании, удалите ненужные старые архивы из /var/lib/vz/dump/ (предварительно проверив) или перенесите бэкапы на отдельный диск или PBS.

Достаточно ли одних снапшотов?

Нет. Снапшоты зависят от исходного хранилища и исчезают вместе с ним при отказе диска, повреждении или удалении ВМ. Держите хотя бы одну копию на другом диске или сервере.

Если проблема не решена, создайте тикет в круглосуточную техподдержку IMIDC: https://www.imidc.com/submitticket.php

Помог ли вам данный ответ?

Похожие руководства